好的,假设我们有以下简单的类:
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??);
}
有什么想法吗?
如果你想测试一个人是否可以添加到你的列表中,你可以做这样的事情。 由于所有类都是"值类",因此使用 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
的测试。