Тестирование юнитов частного класса - PullRequest
0 голосов
/ 24 апреля 2020

Как я могу проверить этот приватный метод? Я не могу передать собственную переменную окружения, чтобы протестировать ее. Спасибо.

@Value("{jobParameters['businessId']}")
String environment;

public void A() {
  B(environment)
}

private void B(String env) {
 switch(env) {
   case 'a': //do something
     break;
   case 'b': //do something
     break;
   default: //do something
  }
}

Ответы [ 2 ]

1 голос
/ 24 апреля 2020

Некоторые решения

  • Вы не можете сделать это с Mockito, но вы можете использовать Powermock (помимо Mockito) и высмеивать частные методы
  • Изменить видимость вашего method -> Very bad practice, но я видел много кода, который использует видимость «пакета» только для того, чтобы иметь возможность протестировать эти методы.
  • Если вы делаете настоящий OO, вам обычно не нужно тестировать эти методы. только методы испытаний, выставленные вашими объектами. Нам просто наплевать на частные методы, потому что с точки зрения тестирования частные методы не существуют (тесты черного ящика).
0 голосов
/ 25 апреля 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...