annotation сделать приватный метод общедоступным только для тестовых классов [duplicate]

На этот вопрос уже есть ответ:

Как мне проверить приватную функцию или класс, у которого есть приватные методы, поля или внутренние классы? 47 ответов

У кого есть решение для этой общей потребности.

У меня есть класс в моем приложении.

Некоторые методы являются общедоступными, поскольку они являются частью API, а некоторые являются частными, поскольку они предназначены для внутреннего использования, чтобы сделать внутренний поток более читабельны

сейчас, скажем, я хочу написать модульный тест или, скорее, интеграционный тест, который будет находиться в другом пакете, которому будет разрешено вызывать этот метод, НО, я хочу, чтобы обычного вызова этого метода не было разрешено, если вы пытаетесь вызвать его из классов самого приложени

так, я думал о чем-то подобном

public class MyClass {

   public void somePublicMethod() {
    ....
   }

   @PublicForTests
   private void somePrivateMethod() {
    ....
   }
}

В приведенной выше аннотации приватный метод помечается как «общедоступный для тестов», что означает, что компиляция и время выполнения будут разрешены для любого класса, находящегося в пакете test ..., в то время как компиляция и \ или среда выполнения потерпят неудачу для любого класса, который не входит в тестовый пакет.

Есть предположения? есть ли такая аннотация? Есть лучший способ сделать это

кажется, что чем больше юнит-тестов ты пишешь, тем больше у тебя информированности о нарушении инкапсуляции ...

Ответы на вопрос(12)

Ваш ответ на вопрос