restful/resource/log4j.xml中
<Loggers>
<Root level="info"> info不打日志 debug 日志会不停地滚
mock单测的时候需要注意的点
import static org.mockito.Mockito.*;
有了这一句就可以用了
public class 方法名 上面加上注解@Runwith(SpringRunner.class)
@InjectMock把需要测试的类注进去 xxxImpl
@Mock xxxImpl中需要用到的service注入 这两个注解没有可比性
@Test不要忘了 不过有个办法就是在xxximpl中右键 goto test 然后create 就可以生成这个实现的测试类
流程
捏数据---when---xxxService.方法()
@InjectMokito下面 注入impl idea自动输入的 会把impl去掉
使用when的时候里面传any() 然后thenreturn中加入自己编的数据保证代码能跑通
一个方法中可以多次使用xxxService
when()出现情况一a
when()出现情况二中a
xxxService.getAgents();
when()出现情况一中b
when()出现情况二中 a
xxx.Service.getAgents
税牌项目中getAllAgents的例子
List list = new ArrayList();
when(。。。)thenreturn(list);
xService.getAgents(...) 这时候就是list为空的情况 一般会判断list是否为空然后 进入一个if,进入完这个if后return了怎么办 这时就需要走list不为空的时候的情况
在上边的代码下边 接着写
list.add(xx1);
list.add(xx2);
when(...).thenreturn (list);
xService.getAgents();这两 两种情况就会被都覆盖了;
对于静态
@PowerMockRunnerDelegate(SpringJUnit4ClassRunner.class)
@PowerMockIgnore({"javax.management.*"})
@PrepareForTest({Td's'fa.class, sdfUtil.class})
@SuppressStaticInitializationFor("com.msdfou.data.tracking.util.rest.sdfUtil")
要记入这些 注释 不明白 然后
还有@Before
public void common(){
mockStatic(sdfUtil.class);
try {
PowerMockito.when(sdfUtil.getId()).thenReturn(1L);
}catch (IOException e) {
e.printStackTrace();
}
}