Способ выполнения тестовых примеров JUnit заключается в том, чтобы поместить их в один и тот же пакет, но в другой корневой каталог. Поскольку мы используем Maven, мы просто используем стандартные местоположения, делая структуру похожей на следующую.
src/main/java/com/foo/Bar.java
src/test/java/com/foo/BarTest.java
Очевидно, что есть еще кое-что в структуре, но это позволяет нам создавать тесты отдельно от основного кода, но при этом получать доступ к защищенным классам и тому подобное. Что касается разных типов тестов, это очень субъективно. Когда мы начали тестирование (которое, к сожалению, началось после разработки), я старался держать вещи в изоляции. К сожалению, это быстро стало кошмаром, когда мы добрались до контрольной точки 500+. С тех пор я пытался сделать больше консолидации. Это привело к уменьшению количества кода для поддержки. Как я уже сказал, это очень субъективно.
Что касается кода только для тестирования, мы храним его в отдельном пакете com.foo.test
, который находится только в дереве src/test/java
.