Springboot проект с несколькими модулями и множеством тестов основного модуля - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь написать тестовые примеры для существующего приложения с несколькими модулями, имеющими основные классы в каждом из них. Есть несколько классов, имеющих \ @SpringBootApplication. Я написал простой тестовый пример, который завершается ошибкой со следующей ошибкой. Как я могу продолжить мой контрольный пример для одного из них.

java.lang.IllegalStateException: найдено несколько @SpringBootConfiguration аннотированные классы [Общий компонент: класс [Com.marketshare.ReportingMainClass]; Объем =; абстрактные = ложь; lazyInit = ложь; autowireMode = 0; dependencyCheck = 0; autowireCandidate = TRUE; первичные = ложь; factoryBeanName = NULL; factoryMethodName = NULL; initMethodName = NULL; destroyMethodName = NULL; определено в файле [C: \ My Data \ рабочее место \ услуги2 \ microservices \ Reporting-Microservice \ сборка \ Классы \ Java \ основные \ ком \ \ ReportingMainClass.class доли рынка], Универсальный компонент: класс [com.marketshare.SharedMain]; Объем =; абстрактные = ложь; lazyInit = ложь; autowireMode = 0; dependencyCheck = 0; autowireCandidate = TRUE; первичные = ложь; factoryBeanName = NULL; factoryMethodName = NULL; initMethodName = NULL; destroyMethodName = NULL; определено в URL [Баночка: Файл: / C: /My%20Data/workspace/services2/microservices/Shared-Module/build/libs/Shared-Module-1.0-SNAPSHOT.jar /com/marketshare/SharedMain.class]] в org.springframework.util.Assert.state (Assert.java:70) в org.springframework.boot.test.context.SpringBootConfigurationFinder.scanPackage (SpringBootConfigurationFinder.java:69) в org.springframework.boot.test.context.SpringBootConfigurationFinder.findFromPackage (SpringBootConfigurationFinder.java:59) в org.springframework.boot.test.context.SpringBootConfigurationFinder.findFromClass (SpringBootConfigurationFinder.java:52)

Вот фрагмент кода

@RunWith(SpringRunner.class)
@WebMvcTest(CustomReportController.class)
public class CustomReportControllerTest {

}

Я просто хочу протестировать мой контроллер. Кстати, я новичок в мире весны.

Ответы [ 3 ]

0 голосов
/ 31 августа 2018

Существует простой подход, вы можете создать новое Spring Boot Application, скажем, TestApplication в вашей исходной папке test, как

ЦСИ \ тест \ Java \ COM \ например \ TestApplication.java

@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan("......").
@EnableAsync
public class TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }

}

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

0 голосов
/ 31 августа 2018

Добавить @SpringBootTest @RunWith (SpringRunner.class) @AutoConfigureMockMvc Используйте эти аннотации для тестового класса и Autowire MockMvc, а затем вы можете использовать mockMvc.perform для тестирования методов контроллера

0 голосов
/ 30 августа 2018

@RunWith (SpringRunner.class) загрузит контекст пружины. Для проверки только контроллера вы можете использовать

@RunWith(MockitoJUnitRunner.class)
public class CustomReportControllerTest {

}
...