如何在 Kotlin 上测试数据类?

11

我在我的 Kotlin 项目中使用数据类来处理 JSON Rest 响应。

示例:

data class WeatherResponse(val city: String, val temperature: Double, val humidity: Double)

为了满足代码覆盖率的要求,我想为上述数据类编写一些测试。

对于Kotlin数据类来说,哪些单元测试是有意义的?

我考虑创建一个WeatherResponse对象和相应的JSON字符串(来自服务器的响应),将该字符串解析为WeatherResponse对象并进行比较?


1
我只会测试那些不是由编译器自动生成的方法。否则,你需要测试getter/setter,如果它们没有做任何“定制”的事情,那么这并没有太多价值。你建议的测试更像是测试与JSON库的集成(即不是单元测试)。 - user2340612
1
选择一个:要么编写有意义的单元测试,要么浪费时间去满足代码覆盖率的限制。 - Miha_x64
1个回答

13
Kotlin数据类的目的是避免样板代码,并认为如果getter和setter中没有逻辑,那么将它们打出来是没有价值的。同样,如果自动生成标准的getter和setter,你不应该尝试对它们进行单元测试,因为你基本上是在测试编译器本身,这没有任何价值。至于你提到的JSON,在这种情况下,你实际上是在测试将对象序列化为JSON的任何内容。如果你想检查特定的序列化配置,那么这可能有一些用处,但我仍然会说你可以假设数据类提供了功能的存在。通过正确的代码覆盖验证,你不需要覆盖不存在于你的Kotlin代码中的行。例如,截至0.8.2版本,JaCoCo 具有过滤生成代码的功能

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接