unit-testing - 由于模拟,“指定为非空的参数为空”
问题描述
我正在进行单元测试,由于系统的复杂性,我只能模拟。更深层次的嵌套函数之一需要存在属性(不可为空)。抛出 NullPointerException。
var diff = mock(Diff::class.java, withSettings().defaultAnswer(CALLS_REAL_METHODS))
var a1 = mock(RepositoryArtifact::class.java)
var a2 = mock(RepositoryArtifact::class.java)
var a3 = mock(RepositoryArtifact::class.java)
@Test
fun andNot() {
println(diff.andNot(collection1,collection2))
assert(diff.andNot(collection1,collection2) == mutableListOf(a3))
}
andNot 函数最终会导致使用模拟工件的检查,该工件为空。
is RepositoryArtifact -> collection.filter { targetArtifact ->
targetArtifact is RepositoryArtifact &&
targetArtifact.message fuzzymatch artifact.message
}
可能有点模糊。我不熟悉 Kotlin,所以请原谅任何错误。
解决方案
推荐阅读
- javascript - 使用 PHP 计算内联宽度会破坏图像轮播 (Flickity)
- bash - 为什么-d在空变量上返回true
- html - 悬停效果适用于两个元素,但它应该只适用于元素
- css - 如何在 qualtrics 中将倒数计时器放在我的问题主体旁边?
- xcode - 将视图控制器从一个情节提要移动到另一个情节提要时,Xcode 11 崩溃。还有另一种方法可以做到这一点吗?
- fonts - 更改字符间距 | Word API JavaScript
- assembly - 组装 - 程序按预期工作,但第二次运行时,打印乱码
- javascript - 当结果应该是 Map 时得到一个数组?
- javascript - 如何检测我的网站/PWA 已加载到前台?
- angular - 带有额外手动验证的多个角度表单验证