Включите модульные тесты в тот же пакет, что и исходный код в Java - PullRequest
9 голосов
/ 24 мая 2010

Я возвращаюсь в Java после долгого пребывания в мире Ruby, и у меня возник вопрос о тестах JUnit и источнике, который я тестирую.

Если у меня есть пакет графического кода для моей компании, давайте назовем его com.example.graphics, стоит ли мне включать свои тесты в этот пакет или они должны быть включены в отдельный пакет, например com.example.graphics.test?

Ответы [ 4 ]

35 голосов
/ 24 мая 2010

В том же java пакете все нормально. Это действительно необходимо, если вам нужен доступ к закрытым пакетам классам, методам или полям. Однако источник должен быть логически отделен:

src/main/com/example/graphics
src/test/com/example/graphics
1 голос
/ 24 мая 2010

Я лично храню все свои тесты в одном пакете, но в дереве тестов Maven (которое я всегда использую для проектов Java).Подумайте об использовании Maven и для ваших сборок - это экономит много работы с вашей стороны.Он обеспечивает структуру, аналогичную той, которую упоминает bkail, но дает гораздо больше, чем стандартизированный макет папки проекта - жизненный цикл проекта (очистка, компиляция, упаковка, тестирование), плагины и т. Д.

1 голос
/ 24 мая 2010

Если вам не нужен доступ к закрытым классам, это на самом деле вопрос вкуса.

Иногда я даже склоняюсь к созданию дополнительного тестового проекта, на который ссылается продукт-проект. Таким образом, продукт и тест четко разделены.

0 голосов
/ 24 июля 2010

Помещение тестов в отдельный пакет, как правило, позволяет избежать проблемы случайного наличия какого-либо метода или класса в области пакета, который вы предполагали использовать клиентами.

...