我目前正在通過他的書「面向對象的設計 - 面向測試的指導」開展工作。作者是書中使用的JMock的創造者。由於Mockito目前擁有最具表現力(可讀)的API,因此我使用的是Mockito而不是JMock。Mockito - 根據另一個對象狀態驗證方法調用
對於大多數例子來說,目前爲止工作得很好,代碼少得多。雖然看到API在時間和框架(JMock - > EasyMock - > Mockito)中的演變並且仍然基於相同的概念,這很有趣。
無論如何:我需要驗證在另一個對象狀態具有特定值時調用模擬方法。
public class TestSomething{
private MyMockedInterface mock;
private States state;
@Test
public void testMethod()
{
// I need something like
when(state.equals(value)).verify(mock).method()
sut.doSomething();
}
}
不幸的是,當(T methodCall)無法處理對象比較。在sut.something()之後的assertEquals不會幫助我,因爲狀態可能會在doSomething中改變多次。
我很確定必須有辦法解決這個問題。如果舊的JMock有一個功能Mockito不會:奇怪的將是奇怪的...我只是無法找到它。