kotlin.UninitializedPropertyAccessException:lateinit 属性尚未初始化

Posted

技术标签:

【中文标题】kotlin.UninitializedPropertyAccessException:lateinit 属性尚未初始化【英文标题】:kotlin.UninitializedPropertyAccessException: lateinit property has not been initialized 【发布时间】: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)

      
 

【问题讨论】:

【参考方案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 在某处

【讨论】:

以上是关于kotlin.UninitializedPropertyAccessException:lateinit 属性尚未初始化的主要内容,如果未能解决你的问题,请参考以下文章