Mockito.when()。return()是如何工作的

时间:2016-03-24 11:08:12

标签: java testing junit mockito

我第一次尝试使用Junit进行模拟。我写了测试方法来测试学生的细节。下面是代码,请帮助我更好地理解,我已经创建了studentService Mock对象,并调用它去获取学生详细信息。我正在通过测试,但我不确定我是否正确

@mock
StudentService client;

@Test

    public void testGetStudentDetails() throws Exception {
            Student  student= new Student()
            student.setCustomerId("123");
            student.setRId("234");
            student.setClassNumber("100");
            Mockito.when(client.getStudentDetails(new Long(123), "1234")).thenReturn(student);
            Student sd=client.getStudentDetails(new Long(123), "1234");
            assertNotNull(sd);
        }

1 个答案:

答案 0 :(得分:4)

此测试现在没有多大意义。

在你的设置中,你告诉模拟如何表现:

Mockito.when(client.getStudentDetails(new Long(123), "1234")).thenReturn(student);

在您的实际测试中,您调用模拟器,并检查它是否按照您的要求执行操作:

Student sd=client.getStudentDetails(new Long(123), "1234");
assertNotNull(sd);

所以你只测试Mockito,我认为这不是你想要的。

假设您想测试getStudentDetails,就我们所知,您不需要Mockito,只需创建一个客户端,调用方法并检查事情是否发生,应该发生。< / p>

您只会模拟 要使用的对象。 (*)从目前为止,我们只看到你要测试的类和另一个使用的类,但是由于你只是创建它而不需要模拟,所以不需要进行模拟。

(*)这是过于简单化,但会在开头做