2016-03-25 4 views
4

В JUnit 5 есть новая аннотация: @Nested.Какова цель JUnit 5 @Nested аннотация

Я понимаю, как это работает, я понимаю, почему мы используем вложенный класс, я просто не понимаю, почему мы должны иметь вложенный тест класса в нашем тесте.

+5

Для формирования логических группировок тестовых примеров. –

+0

Чтобы добавить к этому ... Маленький пример: EatsTest, BehaviourTest можно вложить в DogTest и т. Д. См. Http://junit.org/junit5/#nested-tests –

+1

Эта ссылка должна быть: http://junit.org/junit5/docs/current/user-guide/# nested-tests –

ответ

6

Аннотации @Nested позволяют вам иметь внутренний класс, который по существу является тестовым классом, позволяя группировать несколько тестовых классов под одним и тем же родителем (с той же инициализацией).

0

Все мои тесты нуждаются в сервере базы данных. Большинство моих тестов также нуждаются в таблице Users в базе данных, чтобы иметь возможность входа в систему. Кроме того, для некоторых тестов требуется таблица друзей, чтобы иметь возможность входить в систему и запрашивать друзей.

У каждого ресурса есть настройка и срыв. Я должен начинать и останавливать сервер, создавать и удалять таблицы.

С аннотацией @Nested я могу сгруппировать свои тесты в иерархию вложенных классов, чтобы каждый тест получил настройку и отключение всех тестов по иерархии.

Эта идея исследований гнездования была популяризирована в Ruby. В Java реализовано для Junit 4 с помощью hirarchicalcontextrunner. См. Обоснование на своей странице https://github.com/bechte/junit-hierarchicalcontextrunner/wiki.