我有一個測試類(基於TestNG),我使用Mockito.verify
作爲間諜對象。重置Mockito間諜
這工作:
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)
,但它根本沒有幫助我。
如果我需要在幾次測試中驗證相同的方法,我該如何重置間諜對象?
我問過類似的問題在http://programmers.stackexchange.com/questions/188299/is-this-an-適當使用-的-mockitos-復位方法。只是FYI,雖然這與模擬不是間諜有關。 – 2013-02-26 13:32:37
你在哪裏嘗試將調用添加到'reset'?也許編輯你的代碼來顯示你的嘗試,但註釋掉? – 2013-02-26 13:34:26
我附上了原型示例,重置了我在@BeforeMethod \ @BeforeClass中進行的重置,與@After一樣,甚至在驗證之前 - 它不起作用。據我所知,這只是間諜的一個問題,重置只是爲了模擬對象。 – 2013-02-26 14:25:41