MockK 的 "every" "returns null" 不返回 "null" 而是返回具有 null 和 false 值的 NetworkInfo 对象
MockK's "every" "returns null" not returning "null" but a NetworkInfo object with null and false values
在我的单元测试中,我调用以下内容:
every { connectivityManager.activeNetworkInfo } returns null
但是当我调试时,我得到一个填充了空值和假值的 NetworkInfo 对象
networkInfo = {NetworkInfo@9780}"[type: null[null], state: null/null, reason: unspecified), extra: (none), failover: false, available: false, roaming: false]"
因此,我的实现中的空检查不会产生错误,我无法验证“错误”路径。
val networkInfo = connectivityManager?.activeNetworkInfo
if (networkInfo != null) { ... }
我正在调用这个已弃用的 getActiveNetworkInfo() 方法,因为我需要支持 Android 8.0 8.1 和 9。
我错过了什么?
好的,我发现了问题,上面的代码有效,我的问题是我没有正确传递我的模拟对象,所以模拟代码从未被执行。
在我的单元测试中,我调用以下内容:
every { connectivityManager.activeNetworkInfo } returns null
但是当我调试时,我得到一个填充了空值和假值的 NetworkInfo 对象
networkInfo = {NetworkInfo@9780}"[type: null[null], state: null/null, reason: unspecified), extra: (none), failover: false, available: false, roaming: false]"
因此,我的实现中的空检查不会产生错误,我无法验证“错误”路径。
val networkInfo = connectivityManager?.activeNetworkInfo
if (networkInfo != null) { ... }
我正在调用这个已弃用的 getActiveNetworkInfo() 方法,因为我需要支持 Android 8.0 8.1 和 9。
我错过了什么?
好的,我发现了问题,上面的代码有效,我的问题是我没有正确传递我的模拟对象,所以模拟代码从未被执行。