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。

我错过了什么?

好的,我发现了问题,上面的代码有效,我的问题是我没有正确传递我的模拟对象,所以模拟代码从未被执行。