我想要做的:檢查是否error
是用特定的參數調用一次,但我不在乎是否在同一個模擬上調用其他方法。驗證是否沒有更多的interations特定的方法
final Logger logger = mock(Logger.class);
//code under test
logger.debug("Something");//I don't care if it's here
logger.error("Boo");// must be one
//logger.error("Baa");// must fail if un-comment
logger.info("Stuff");//I don't care if it's here
//assertions
verify(logger, times(1)).error("Boo");
???verify(logger, never()).error(anyString());// Wrong solution
???verifyNoMoreInteractions(logger);// Wrong solution
換句話說,我想驗證錯誤是如何報告的,但我不介意調試和信息。
我該怎麼辦?
不只是'驗證(記錄器,次(1))。錯誤(「噓」);'做到這一點? – dty
@dty如果logger.error(「Baa」)沒有被評論,但是我想要,它不會失敗。 – kan
對不起,沒有抓住。在這種情況下,你應該看看Matchers類。您可以檢查一次是否使用「Boo」調用它,如果參數不等於「Boo」,則永遠不會。 – dty