我有一些像这样的结构
...
SomeDao dao = getDAO(AttributeDAO.class);
CustomType type =dao.findByKey(typeOne, typeTwo, typeThree.toString());
if(type == null) {
System.out.print("null returned");
} else {
System.out.print("do something");
}
...
我的测试用例
...
MainClass mc = Mockito.spy(new MainClass());
CustomType type = new CustomType();
SomeDao dao = Mockito.mock(AttributeDAO.class);
type.setValueOne(1);
type.setValueTwo(1);
type.setValueThree("Y");
Mockito.doReturn(type).when(dao).findByKey(1,2,"Y");
mc.callThisDaoFunction();
...
但每当我尝试使用eclemma coverage工具返回类型时,它会继续说type == null
我如何测试用例或设置类型以返回非空值?
答案 0 :(得分:2)
您需要将 dao 模拟注入 MainClass 。否则,在调用 getDao(AttributeDAO.class)时,它仍会尝试检索真正的 dao 。