根据该方法接收的参数,希望返回不同的东西。如何使用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/

10-10 22:48