Контрольные примеры JUnit - не вижу классов - PullRequest
0 голосов
/ 04 марта 2012

Я борюсь с перестройкой heiracrchy в моем проекте.Я организовал все классы в пакеты (но неправильно), и теперь я думаю, что мне нужно вкладывать свои пакеты в противоположность наличию их на отдельных уровнях?

Теперь, когда я пытаюсь написать тестовые классы для классов в моемПроект я не вижу соответствующих методов, не используя отражения для всего.

На данный момент у меня есть иерархия enter image description here

Что мне нужно изменить, чтобы иметь возможность тестировать без использования отражения для всего и правильно вкладывать мои пакеты?

Спасибо

Ответы [ 2 ]

4 голосов
/ 04 марта 2012

Расположите ваши тестовые файлы так, чтобы они имели ту же структуру пакета, что и ваши файлы src.Таким образом, любой метод в co.uk.mine.SomeClass может иметь соответствующий co.uk.mine.SomeClassTest, который может получить доступ к любым не приватным методам.Частные методы могут быть доступны с помощью рефлексии.Ваш идеал должен позволить вам установить 2 структуры файлов, чтобы разделить тестовый код:

../src/co/uk/mine/SomeClass.java
../test/co/uk/mine/SomeClassTest.java
2 голосов
/ 04 марта 2012

Доступность методов по умолчанию - «видимость пакета».См. Эту статью IBM по этому вопросу:

http://www.ibm.com/developerworks/library/ws-tip-mem-visibility.html

Чтобы сделать ваши методы видимыми для классов вне пакета, сделайте их открытыми:

public void myMethod() {...}
...