我使用對象列表調用一個方法performAction並驗證它。在調用這個方法之後,我修改了一些「對象」。Mockito驗證:在verify()期間比在模擬方法調用期間驗證
Mockito驗證失敗,說參數不匹配(顯示修改的對象),但我可以在調試模式下看到對象根據需要是正確的。
理想情況下,不應該發生這種情況,因爲驗證應該在實際調用方法的基礎上應用。在驗證呼叫中使用測試方法時,驗證是否應用於模擬方法調用時?
測試類
@Test
public void test() throws Exception {
List<ABC> objects = new ArrayList<ABC>();
//populate objects.
activity.performActions(objects);
verify(activity, times(1)).doActivity(objects);
}
方法測試:
public void performActions(List<ABC> objects) {
activity.doActivity(urlObjects2PerformAction);
//Modify objects
}
錯誤,我得到的是如下(這是完整的代碼,我已經給儘可能小的片斷。):
Argument(s) are different! Wanted:
activity.doActivity(
.......
......
將代碼縮減爲再現問題的最短示例,粘貼此示例的完整代碼以及所獲得的確切完整的錯誤消息。 –
@JBNizet修改了這個問題。 – instanceOfObject