【问题标题】:kotlin.UninitializedPropertyAccessException: lateinit property has not been initializedkotlin.UninitializedPropertyAccessException:lateinit 属性尚未初始化
【发布时间】:2021-06-21 18:36:44
【问题描述】:

这是我的主要功能

object Service {
  fun getConfigMappings(client: RedissonClient, request: GetRequest): IndataType {
        ****
        return obj
  }
}

我在主课上调用它,一切正常,我可以得到响应。

@Autowired
lateinit var client: RedissonClient

val indataObj = Service.getConfigMappings(client, request)

当我想为其编写测试时,出现错误“kotlin.UninitializedPropertyAccessException:lateinit 属性客户端尚未初始化”,任何人都可以帮助我吗? "

class ServiceTest {
    @Autowired
    lateinit var client: RedissonClient

    @Test
    fun `test1`() {

        val request = GetRequest {
            ***
        }

        val indataObj = Service.getConfigMappings(client, request)

      }
 }

【问题讨论】:

    标签: spring kotlin


    【解决方案1】:

    kotlin.UninitializedPropertyAccessException: lateinit property has not been initialized 发生是因为没有AutoWired 的配置。

    如果要在单元测试中使用AutoWired,则需要注解进行配置。

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations="classpath:config/springbeans.xml")
    public class BeanSpringTest {
    

    【讨论】:

      【解决方案2】:

      如果你想使用@Autowired,一定有一个@Bean 在某处

      【讨论】:

        猜你喜欢
        • 2020-04-18
        • 2021-04-02
        • 2020-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-23
        • 2020-11-01
        • 2020-09-06
        相关资源
        最近更新 更多