2012-09-14 17 views
1

假設在Foo對象上調用bar()將在其對象Waldo上調用baz(),僅在第一次。換句話說,Mockito:確認在特定點調用某個方法

Foo foo = new Foo(); 
foo.setWaldo(new Waldo()); 
foo.bar(); // This calls baz() on the Waldo. 
foo.bar(); // This should not call baz() on the Waldo. 

這是我如何覈實baz()呼叫的時刻。

Foo foo = new Foo(); 
Waldo waldo = mock(Waldo.class); 
foo.setWaldo(waldo); 
foo.bar(); 
foo.bar(); 
verify(waldo).baz(); 

問題在於它沒有驗證何時調用了baz()。即使baz()被第二次調用foo.bar()被調用,這也會得到通過。

如何用Mockito進行正確驗證?

回答

4
Foo foo = new Foo(); 
Waldo waldo = mock(Waldo.class); 
foo.setWaldo(waldo); 
foo.bar(); 
verify(waldo).baz(); 
foo.bar(); 
verifyNoMoreInteractions(waldo); 
相關問題