Вот что у меня есть:

@RunWith(SpringRunner::class)
@ActiveProfiles("unit-test")
@WithUserDetails
@WebMvcTest(MyController::class)
class MyControllerTest {

    @MockBean
    lateinit var service: MyService

    @Autowired
    lateinit var mvc: MockMvc

Но я продолжаю получать исключения, похожие на:

 org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 

И каждый раз, когда я добавляю зависимость, например:

    @MockBean
    lateinit var anotherBean: AnotherBean

Бросается еще один недостающий bean (вроде бесконечный).

Есть ли подходящее решение для этого в Котлине?

0
ben l 20 Ноя 2019 в 03:28

2 ответа

Просто добавьте аннотацию @SpringBootTest из направляющих пружин:

Аннотация @SpringBootTest сообщает Spring Boot искать основной класс конфигурации (например, с @SpringBootApplication) и использовать его для запуска контекста приложения Spring. Вы можете запустить этот тест в своей среде IDE или в командной строке (mvn test или gradle test), и он должен пройти.

0
tsarenkotxt 20 Ноя 2019 в 04:02

Аннотируйте свой тестовый класс с помощью следующих двух аннотаций

@WebMvcTest(secure = false)
@ContextConfiguration(classes = [YourClass::class])

secure = false - отключить конфигурацию безопасности Spring.

0
archis99 27 Янв 2020 в 19:29