我的单元测试存在问题,这意味着我的应用程序中的Service类涉及Dao。
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private AvisDao avisDao;
@InjectMocks
private ApiPortalsService service = new ApiPortalsServiceImpl();
@Before
public void initMocksWS() throws Exception{
MockitoAnnotations.initMocks(this);
}
Factory factoria = FactoryImpl.getInstance();
@Test
public void testGuardarAvisos() throws Exception{
Mockito.when(avisDao.existsPortalContingut(AvisPortal.class.cast(Matchers.anyObject()))).thenAnswer(new Answer<boolean>(){
@Override
public boolean answer(InvocationOnMock invocation) throws Throwable{
return true;
}
});
}
这是Test类,当我尝试使用布尔值设置the thenAnswer
时发生错误。包含对象的方法existsPortalContingut
返回布尔值。这是我第一次尝试创建一个Test类,如果我忘记了什么,请告诉我,我会编辑它。
我说错了什么?
boolean existsPortalContingut(final AvisPortal portalContenido);
这是我试图在Dao中调用的方法
答案 0 :(得分:0)
答案很简单,不是布尔值,它的布尔值因为它返回了一个对象。
这将是这样的:
Mockito.when(avisDao.existsPortalContingut(AvisPortal.class.cast(Matchers.anyObject()))).thenAnswer(new Answer<Boolean>(){
@Override
public Boolean answer(InvocationOnMock invocation) throws Throwable {
return true;
}
});