java - Kotlin 单元测试变量声明 lateinit vs lazy vs nullable vs non-nullable
问题描述
我们正在将大部分单元测试从 Java 转换为 Kotlin。在我们的单元测试中声明变量的最佳方法是什么(但不是所有的可能仍然有使用 lateinit、lazy、可为空等的用例)以及原因。
解决方案
我相信 lateinit、lazy、nullable 和 non-nullable 在 Kotlin 的单元测试中也是很好的特性。
您可能知道 lateinit 仅适用于 var lateinit var
,这提供了以下功能:
- 您可以
lateinit var
从项目的任何部分进行初始化,因此这使您能够在测试用例中初始化变量 lateinit var
不适用于不可为空的值,因此您可以将空值分配给 lateinit 变量并检查其可空性作为测试用例。- 您可以经常更改值,
lateinit var
并且由于您正在更改值,它会增加您的测试用例,从而增加您的覆盖率。
在惰性时,它仅适用于 val,val ins by lazy{}
- 当您有一个单例(对象类)并且您的测试用例依赖于此实例时,这是一个很好的做法,因此您只需创建一次
by lazy
我推荐阅读这篇关于 kotlin 最佳实践的文章。
我希望这很好。
推荐阅读
- jquery - 如何在带有 $$this 和 jQuery 的复选框后选择一个跨度
- typescript - 在 Javascript 类上记录和允许宏功能
- reason-react - 原因反应模板中的CSS放在哪里?
- python-3.x - 我如何下载与喀拉拉邦洪水相关的地理标记推文?
- javascript - 推入数组中的第一个对象
- docker - 为什么有人会为两个 docker 容器使用相同的网络命名空间?
- jquery - 将 datetimepicker 重置为当前月份
- entity-framework - 实体框架核心变更跟踪器
- javascript - 如何在 HTML 时间表单中禁用/灰显特定时间
- spring-tools-4 - Spring STS 4 PropertiesLauncher 启动参数