annotation сделать приватный метод общедоступным только для тестовых классов [duplicate]
На этот вопрос уже есть ответ:
Как мне проверить приватную функцию или класс, у которого есть приватные методы, поля или внутренние классы? 47 ответовУ кого есть решение для этой общей потребности.
У меня есть класс в моем приложении.
Некоторые методы являются общедоступными, поскольку они являются частью API, а некоторые являются частными, поскольку они предназначены для внутреннего использования, чтобы сделать внутренний поток более читабельны
сейчас, скажем, я хочу написать модульный тест или, скорее, интеграционный тест, который будет находиться в другом пакете, которому будет разрешено вызывать этот метод, НО, я хочу, чтобы обычного вызова этого метода не было разрешено, если вы пытаетесь вызвать его из классов самого приложени
так, я думал о чем-то подобном
public class MyClass {
public void somePublicMethod() {
....
}
@PublicForTests
private void somePrivateMethod() {
....
}
}
В приведенной выше аннотации приватный метод помечается как «общедоступный для тестов», что означает, что компиляция и время выполнения будут разрешены для любого класса, находящегося в пакете test ..., в то время как компиляция и \ или среда выполнения потерпят неудачу для любого класса, который не входит в тестовый пакет.
Есть предположения? есть ли такая аннотация? Есть лучший способ сделать это
кажется, что чем больше юнит-тестов ты пишешь, тем больше у тебя информированности о нарушении инкапсуляции ...