2015-10-21 6 views
6

Я использую чистые JUnit4 java-тесты над моими чистыми java-файлами в моем проекте, но я не могу найти способ использовать @VisibleForTesting, не делая это публично публично.Как использовать VisibleForTesting для чистых тестов JUnit

Ex:

@VisibleForTesting 
public Address getAddress() { 
    return mAddress; 
} 

Метод должен быть public пусть это будет «общественность» на тестах, но в этом случае аннотаций не имеет смысла правильно? почему бы просто не использовать комментарий, если аннотация не будет делать ничего?

ответ

18

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

@VisibleForTesting 
Address getAddress() { 
    return mAddress; 
} 

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

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

Смежные вопросы