Как обнаружить вложенные классы Unit Test (не в папке test) в Java - PullRequest
0 голосов
/ 28 января 2020

Я знаю, что довольно сложно протестировать многие возможности языка Java. Например, было бы невозможно проверить закрытые переменные класса или аналогичные методы. Обычно я занимаюсь этим, создавая вложенный класс, где этот вложенный класс является модульным тестом, таким образом:

public class MyClass{

 private String somePrivate;
  // omitted for brevity


  @RunWith(MockitoJUnitRunner.class)
  public static class MyClassUnitTest{
     @InjectMockito
      MyClass myclassMocked;

// so forth...
  }

} 

, таким образом, нет необходимости в рефлексии / powermock или других!

Эта структура помогает мне, чтобы проверить все недоступные члены или методы класса. Но похоже, что я также должен сделать автоматическую сборку, где maven будет искать эти вложенные классы для модульных тестов и запускать его, когда я mvn clean test в развертывании.

Я пытался найти какой-либо ответ на это, но безрезультатно, я не смог найти ни одного spe c из maven или maven-surefire-plugin, чтобы сказать, что «эй, пожалуйста, посмотрите на эти вложенные классы в папке src / main и отметьте их как модульный тест». Кроме того, я использую Springboot для упаковки всего моего проекта (таким образом, большинство зависимостей связано с Spring)

Кто-нибудь готов к решению?

1 Ответ

2 голосов
/ 28 января 2020

Например, было бы невозможно проверить закрытые переменные класса или аналогичные методы

Вам не нужно это делать - закрытые методы являются частными, и они косвенное тестирование с помощью методов тестирования, которые их используют.

Вы не должны встраивать тестовый код или библиотеки, чтобы их приходилось поставлять с производственным программным обеспечением, точка.

Не делайте того, что вы предлагаете .

Редактирование на основе вашего комментария:

Что касается технической поддержки, Maven поддерживает только 1 каталог для источников тестов.

Вы можете сделать что-то вроде создания настройка интеграционных тестов, которая будет искать тесты в вашем каталоге src/main, но причина, по которой это нелегко сделать с Maven, заключается в том, что Maven продвигает вменяемые шаблоны, а ваш шаблон не является одним из них.

Как добавить еще одну папку с исходным тестом в Maven и скомпилировать ее в отдельную папку?

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