如何测试返回自定义对象列表的getter?

时间:2017-05-28 20:08:44

标签: java testing mockito

好的,我们假设我们有以下简单类:

 public class Employees{


        List<Person> personsList;
        private int numberOfEmployees;

        public void Employees(){

        //constructor

        }

        //getters & setters

        public List<Person> getPersons(){
            return personsList;
        }

          public void addNewEmployee(Person person){

        this.personsList.add(person);

    }

    }

我想测试返回Person对象列表的getter(使用mockito)

我正在做类似的事情:

@Test
public void getPersonsTest() throws Exception{
    Employees.addNewEmployee(employee); //where employee is a mocked object

    assertEquals(Employees.getPersons(),WHAT SHOULD I PUT HERE??);


}

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果您想测试一个人是否可以添加到您的列表中,您可以执行类似的操作。由于所有类都是“价值类”,因此使用Mockito毫无意义。

@Test
public void singleEmployeeAddedToList() throws Exception{
    Employees toTest = new Employees();
    Person testSubject = new Person("John", "Smith");
    toTest.addNewEmployee(testSubject);

    assertEquals(Collections.singletonList(testSubject), toTest.getPersons());
}

请注意,在JUnit断言中,首先是预期结果,然后是您尝试检查的结果。如果你错误地回答,那么当断言失败时,错误消息就毫无意义。

请注意,这实际上更像是addNewEmployee而非getPersons的测试。