Почему модификатор доступа по умолчанию в JUnit 5 изменен на закрытый пакет - PullRequest
10 голосов
/ 18 марта 2019

Почему модификатор доступа по умолчанию в JUnit 5 является закрытым?

Тесты в JUnit 4 должны были быть открытыми.

Какая польза от изменения его на частный пакет?

Ответы [ 2 ]

9 голосов
/ 19 марта 2019

Почему модификатор доступа по умолчанию в JUnit 5 является закрытым?

Это не "по умолчанию". Там технически нет по умолчанию. Скорее, в JUnit Jupiter у вас есть выбор: public, protected или пакетный.

Какая польза от изменения его на частный пакет?

Преимущество в том, что у вас больше нет типа public. Если ваша IDE автоматически генерирует методы тестирования и классы тестирования для вас, которые public, не стесняйтесь оставлять их public.

Но ... если вы набираете методы самостоятельно, просто отключите public, если вы не разрабатываете свои тестовые классы для создания подклассов из других пакетов, и в этом случае вы захотите сделать свой переопределяемые методы испытаний public или protected. И конечно, методы интерфейса default должны быть public.

Длинная история, короткая: мы (команда JUnit 5) верим в принцип «Чем меньше, тем лучше», то есть чем меньше нужно набирать текст для достижения своей цели, тем лучше!

3 голосов
/ 18 марта 2019

Это функция JUnit 5 , обеспечивающая улучшенную инкапсуляцию для классов и методов тестирования

Сделать пакет тестов Jupiter закрытым # 679

Testкласс в основном находится в том же пакете тестируемого класса:

лучший способ - поместить тесты в отдельную параллельную структуру каталогов с выравниванием пакетов.

main/                          test/
   com/                           com/
      xyz/                           xyz/
         ? SomeClass.java              ? SomeClassTests.java

Этот подход позволяет тестовому коду получать доступ ко всем открытым и видимым элементам тестируемых классов.

...