У кого есть решение для этой общей потребности.
У меня есть класс в моем приложении.
некоторые методы являются общедоступными, поскольку они являются частью api, и некоторые частные, поскольку они для внутреннего использования делают внутренний поток более читабельным
теперь, скажем, я хочу написать unit test или больше как тест интеграции, который будет расположен в другом пакете, который будет разрешен для вызова этого метода, НО, я хочу, чтобы обычный вызов этого метода не будет разрешено, если вы попытаетесь вызвать его из классов самого приложения
Итак, я думал о чем-то вроде этого
public class MyClass {
public void somePublicMethod() {
....
}
@PublicForTests
private void somePrivateMethod() {
....
}
}
В аннотации выше будет отмечен частный метод как "общедоступный для тестов", это означает, что компиляция и время выполнения будут разрешены для любого класса, который находится под тестом..., а компиляция и\или время выполнения не удастся для любого класса, который не находится под тестовым пакетом.
любые мысли? есть ли такая аннотация? есть ли лучший способ сделать это?
Кажется, что чем больше единиц тестов вы пишете, тем больше у вас появляется возможность разбить вашу инкапсуляцию...