Junit: Написание юнит-тестов для удаления ученика из группы - PullRequest
0 голосов
/ 14 мая 2019

Я тестирую функцию 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);
}

Это правильный случай для проверки требования? Какой еще тест я могу добавить к этому?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...