0
我有方法和需要對其進行測試:如何爲mockito設置模擬對象方法調用的回調?
void update() {
_cleaner.clear();
_updator.upadate();
}
調用的順序是對於這種情況很重要。我想寫測試是這樣的:
void updateTest(){
Integer CLEAR = 0, UPDATE = 1;
Stack<Integer> callStack = new Stack<>();
Cleaner cleaner = mock(Cleaner.class);
Updator updator = mock(Updator.class);
when(cleaner.clear()).callback(() -> callStack.add(CLEAR));
when(updator.update()).callback(() -> callStack.add(UPDATE));
Some testingObj = new Some(cleaner, updator);
testingObj.update();
assertEquels(CLEAR, callStack.pop());
assertEquels(UPDATE, callStack.pop());
assertTrue(callStack.isEmpty());
}
_cleaner.clear()和_updator.upadate()返回void。很明顯,
when(cleaner.clear()).callback(() -> callStack.add(ClearCall));
when(updator.update()).callback(() -> callStack.add(UpdateCall));
是無效的代碼。除了那些成功的路線,我可以寫些什麼?如何通過mockito調用方法的回調函數(void作爲結果的類型)?