Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 如何验证void方法';返回';莫基托_Unit Testing_Mockito - Fatal编程技术网

Unit testing 如何验证void方法';返回';莫基托

Unit testing 如何验证void方法';返回';莫基托,unit-testing,mockito,Unit Testing,Mockito,我正在测试一个结构如下的函数: void method1() { if(booleanCondition1) { return; } callMethod2(); callMethod3(); ... .. callMethod-n(); } 当booleanction1的计算结果为TRUE时,我必须为此编写一个模拟测试。 一种方法是确保,callMethod2()和callMethod3()等等,直到永远不会调用callMethod-n()(使用Mo

我正在测试一个结构如下的函数:

void method1() {
   if(booleanCondition1) {
      return;
   }
   callMethod2();
   callMethod3();
...
..
   callMethod-n();
}
booleanction1
的计算结果为TRUE时,我必须为此编写一个模拟测试。 一种方法是确保,
callMethod2()
callMethod3()
等等,直到永远不会调用
callMethod-n()
(使用
Mockito.never()

除了确保返回后的所有语句都没有被调用之外,还有什么有效的方法来实现这一点吗


换句话说,我可以验证是否使用Mockito调用了“return”语句吗?

您无法测试遇到了哪个
return
语句,但您可以执行
verifyzerotactions
verifynomoreiversations
来包含大量
验证(mock,never())
断言


节约使用--
verifynomore交互
如果过度使用会导致脆弱的测试。

嗨,杰夫,这将是我问题的一半。我还需要验证未调用被监视对象(而不是模拟对象)上的某些方法。对于间谍目标也有类似的方法吗?@venkataratnam这些调用——以及Mockito的大部分其他调用——对间谍和模拟都有效。我在这样构造的对象(Instance it=spy(new Instance())上尝试了这个方法,我得到一个错误,说“不是模拟”您所描述的内容在Mockito中是允许的。请制作一个可复制的示例作为单独的问题,因为这超出了此评论框的范围。