Я тоже склонны ставить свои тесты в одном пакете, но в другом корневом каталоге. Это позволяет мне тестировать частные классы класса или получать доступ к классам, приватным к упаковке, при тестировании чего-то еще в пакете. Они хранятся в отдельном дереве каталогов, чтобы исключить их из развернутого результата (в частности, чтобы убедиться, что тестовый код случайно не попал в производственный код). Самое главное, однако, то, что работает для вашей ситуации.
С точки зрения количества испытательных классов на класс производства, я видел, что вы пишете один тестовый класс для каждого прибора, то есть для каждой структуры установки. Во многих случаях это одно и то же (или достаточно близко) к одному тестовому классу для каждого производственного класса, но я иногда писал больше тестовых классов (в частности, тесты на равенство, как правило, разделяются) для производственного класса, а иногда и один тестовый класс для группы (связанных) производственных классов (скажем, для тестирования шаблона стратегии).
В основном, я не слишком беспокоюсь об этой теории, но переделываю тесты по мере необходимости, чтобы сохранить дублирование до абсолютного минимума.
Подобные вещи здесь, за исключением того, что мы используем «src/com/foo/...» и «test/com/foo/...». –
Лично я нахожу ответ Боба еще лучше. Даже если JUnit test _is_ исходный код. – guerda
Честно говоря, единственная причина, по которой я пошел с src/main/java и src/test/java, - это то, что мне не нужно было бы делать никакой дополнительной настройки Maven. –