【问题标题】:Kotlin with Spring Boot 2.1 WebMvcTest - missing beans带有 Spring Boot 2.1 WebMvcTest 的 Kotlin - 缺少 bean
【发布时间】:2019-11-20 00:28:12
【问题描述】:

这是我所拥有的:

@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 被抛出(有点没完没了)。

在 Kotlin 中是否有适当的解决方案?

【问题讨论】:

    标签: spring spring-boot testing kotlin


    【解决方案1】:

    只需添加注释@SpringBootTest,来自spring guides

    @SpringBootTest 注解告诉 Spring Boot 去寻找一个主配置类(例如一个带有 @SpringBootApplication 的配置类),并使用它来启动一个 Spring 应用程序上下文。您可以在 IDE 或命令行(mvn test 或 gradle test)上运行此测试,它应该会通过。

    【讨论】:

      【解决方案2】:

      使用以下两个注释来注释您的测试类

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

      secure = false是禁用Spring安全配置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        • 1970-01-01
        • 2021-11-25
        • 1970-01-01
        • 1970-01-01
        • 2020-01-05
        • 2019-02-27
        相关资源
        最近更新 更多