【发布时间】:2013-02-26 13:28:10
【问题描述】:
我有一个测试类(基于 TestNG),我在其中使用Mockito.verify 作为间谍对象。
这行得通:
public class Program {
@Spy
private TestObject testObject;
@Test
public void test1() {
testObject.makeSth();
verify(testObject, only()).someMethodNeedToBeChecked();
}
}
但是在这里:
public class Program {
@Spy
private TestObject testObject;
@Test
public void test1() {
testObject.makeSth();
verify(testObject, only()).someMethodNeedToBeChecked();
}
@Test
public void test2() {
// Some different scenario
testObject.makeSth();
verify(testObject, only()).someMethodNeedToBeChecked();
...
}
}
我得到一个 Mokito 异常,我有不止一次调用 someMethodNeedToBeChecked 方法。当然,我尝试添加Mockito.reset(testObject),但它对我没有任何帮助。
如果我需要在多个测试中验证相同的方法,如何重置 spy 对象?
【问题讨论】:
-
我在programmers.stackexchange.com/questions/188299/… 上问了一个类似的问题。仅供参考,尽管这与模拟而非间谍有关。
-
您在哪里尝试将呼叫添加到
reset?也许编辑您的代码以显示您的尝试,但被注释掉了? -
我只附加了原型示例,我尝试在@BeforeMethod\@BeforeClass 中进行重置,与@After 相同,甚至在验证之前 - 它也没有用。据我了解,这只是间谍的问题,而重置仅适用于模拟对象。
标签: java unit-testing mocking mockito