Mockito单元测试
Mockito单元测试
知识点:
1、
/**
* InjectMocks,注入对象,等同于@Autowired@Resource
* 因为单元测试的时候,spring容器没有启动,@Autowired@Resource无法注入对象,所以使用@InjectMocks注入对象
*/
@InjectMocks
private CallerMngServiceImpl callerMngService;
2、
/**
* 等同于mock(OhCallerConfDAO.class),模拟一个对象
*/
@Mock //mock(OhCallerConfDAO.class)
private OhCallerConfDAO callerConfDAO;
3、
/**
* 初始化这个测试类,未初始化前 private List list == null;
* 初始化后:private List list != null;
* ps:不是特别懂,反正每个测试类都添加吧
*/
@BeforeTest
public void init() {
MockitoAnnotations.initMocks(this);
}
例子
public class CallerMngServiceMockTest {
@InjectMocks //@Autowired @Resource
private CallerMngServiceImpl callerMngService;
/**
* 等同于mock(OhCallerConfDAO.class),模拟一个对象
*/
@Mock //mock(OhCallerConfDAO.class)
private OhCallerConfDAO callerConfDAO;
/**
* 初始化这个测试类,未初始化前 callerConfDAO==null
* 初始化后:callerConfDAO = new CallerConDAO();
*/
@BeforeTest //每个测试类写一下这个
public void init() {
MockitoAnnotations.initMocks(this);
}
/**
* 查询
*/
@Test
public void test() {
String caller = "lm";
OhCallerConfDO callerConfDO = new OhCallerConfDO();
callerConfDO.setCaller("lm");
callerConfDO.setOwnerName("夏恒");
CallerConfig callerConfig = new CallerConfig();
callerConfDO.setConf(JSON.toJSONString(callerConfig));
/**
when(mockList.add(anyString())).thenReturn(null);
输入任何:String字符串,方法执行结果都为:null
*/
//callerConfDAO.queryByCaller(caller) 执行结果:callerConfDO
Mockito.when(callerConfDAO.queryByCaller(caller)).thenReturn(callerConfDO);
CallerConfModel callerConfModel = callerMngService.queryByCaller(caller);
AssertUtil.assertEquals("不相等", callerConfDO.getCaller(), callerConfModel.getCaller());
}
}