根据该方法接收的参数,希望返回不同的东西。如何使用Mockito做到这一点?例如,根据“ Planilha”的ID,我希望获得不同的回报,但不知道如何实现这种平等。
我的测试
@Test(expected = InternalServerErrorException.class)
public void testReadMetadados_invalidPlanilha_invalidFormat() throws Exception {
oknok.validacao.entities.Planilha actual = new Planilha().setPath(URL_TEST.concat("click/T001.json"))
.setId("invalidFormat");
planilhaReader.readMetadados(actual);
}
我的模拟
@Bean
UploadDAO getUploadDAO() {
UploadDAO dao = Mockito.mock(UploadDAO.class);
File myFile = new File(URL_TEST, "click/T001.json");
Planilha planilha = new Planilha().setId("invalidFormat").setPath(URL_TEST.concat("click/T001.json"));
when(dao.getPlanilha(Matchers.eq(planilha))).thenReturn(myFile);
return dao;
}
最佳答案
您的代码似乎是正确的,但是您应该确保Planilha
类正确实现了equals
方法。此方法应比较相等所需的所有属性。
关于java - 如何根据收到的参数进行模拟?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30466115/