0
試圖寫有一個的Mockito簡單的單元測試匹配例外:的Mockito anyBoolean()在返回
@Test
public void toggleBlockingControlTest_turnOff() {
when(mainViewPresenter.getAppSettingsStorage().loadBlockingStatus())
.thenReturn(Mockito.anyBoolean());
AppSettingsStorage appSettingsStorage = mainViewPresenter.getAppSettingsStorage();
boolean statusBefore = appSettingsStorage.loadBlockingStatus();
Mockito.verify(appSettingsStorage).saveBlockingStatus(Mockito.eq(!statusBefore));
}
在運行時我得到org.mockito.exceptions.misusing.InvalidUseOfMatchersException:在此字符串:
.thenReturn(Mockito.anyBoolean());
我是新來的Mockito,不明白爲什麼這個框架不能返回任何布爾值?
如果你不在乎什麼價值的嘲弄'loadBlockingStatus()'返回(這就是*不*什麼'anyBoolean()'是),有沒有點指定它 - 模擬會默認返回'false'(在你的情況下你需要確保你設置了'RETURNS_DEEP_STUBS'標誌)。 'mainViewPresenter'甚至是一個模擬?你應該多包含一些周圍的代碼並添加完整的堆棧跟蹤。看起來你正在嘲笑你想要測試的課程 - 這基本上破壞了測試的目的。 – kryger
Tnx的答覆 - 我想我有這個測試算法的概念誤解。我真的不關心返回布爾值.... –