Я тестирую функцию removeStudent(Student s, Group g)
, где ожидаемое поведение таково, что если Group
пусто, вызов removeStudent
ничего не сделает.
Как мы можем проверить это поведение?
Вот несколько методов:
private final Map<Group, Set<Student>> studentsInGroup = new HashMap<>();
public void removeStudent(Student s, Group g) {
Collection<Student> students = getStudentsInGroup(g);
studentsInGroup.remove(s);
}
public Collection<Student> getStudentsInGroup(Group g) {
Collection<Student> students = studentsInGroup.get(g);
if (students == null) {
students = new HashSet<Student>();
}
return students;
}
Я могу написать только один тест:
@Test
public void testRemoveStudentFromEmptyGroup() {
// have created a Student: FRED and a Group: ADMINS
// Have not created any mapping for Group and ADMINS, so currently getStudentsInGroup(ADMINS) will return an empty Set<Student>
service.removeStudent(FRED, ADMINS);
assertTrue("ADMINS group is empty. Do nothing", service.getStudentsInGroup(ADMINS).size() == 0);
}
Это правильный случай для проверки требования? Какой еще тест я могу добавить к этому?