c-a*_*-an 14 junit android kotlin mockk
我阅读了文档,但我仍然不明白。
这之间的差异
private val myClass: MyClass = mockk(relaxed = true)
Run Code Online (Sandbox Code Playgroud)
和这个。
private val myClass: MyClass = mockk()
Run Code Online (Sandbox Code Playgroud)
我的理解是如果放松是真的。然后,所有成员字段或方法都将返回默认值。否则,不会。这是正确的理解吗?
如果是这样,设置alwaysrelaxed=true会更好。但在这段视频中,瑞安同时使用了两者。为什么?
如果您尝试调用一个不知道要返回什么的模拟方法,并且relaxed 未设置为 true,您将抛出异常。这样做是为了让测试不太可能引入不可预测的行为,因为开发人员没有故意模拟的方法返回默认值。
在链接的视频中,视图方法可能从未被调用,因此不需要“放松”。您还可以使用“relaxedUnitFun”,它仅适用于返回 Unit 的方法,例如对于负责事件日志记录的类来说很方便。
但这是一把双刃武器,因为“放松”一切会剥夺您上述的安全机制。如果这是你想要的,你也可以全局配置,检查https://mockk.io/#settings-file
| 归档时间: |
|
| 查看次数: |
13437 次 |
| 最近记录: |