嗨我有這個測試失敗,並給我這個錯誤,失敗是在驗證......但我不明白爲什麼。爲什麼EasyMock測試失敗?
java.lang.AssertionError: Expectation failure on verify: debug(isA(java.lang.Object)): expected: 1, actual: 0
測試代碼是這樣的。
public void testLogInfo()
{
JDBCAppender jdbcAppender = createNiceMock(JDBCAppender.class);
Logger logger = createNiceMock(Logger.class);
LogDB logDB = new LogDB(null, null, null, LogDBDriver.ODBC, Level.TRACE);
logDB.setJdbcAppender(jdbcAppender);
logDB.setLogger(logger);
// method call
logger.info(isA(Object.class));
expectLastCall().once();
// replay
replay(logger);
replay(jdbcAppender);
// verify method call
logDB.log(Level.INFO, "10", "Server", "admin", "shortext", "longText","className","methodName");
verify(logger);
}
似乎有一個預期的但未實現的調試()調用。除了您最初想要測試的信息日誌外,LogDB是否會在任何設置器中執行任何調試日誌記錄? – 2011-03-22 21:28:56
不知道我理解你的問題...... LogDB負責將其插入到數據庫中,但由於這是一個模擬,LogDB構造函數調用中沒有DB數據,因此您可以看到,這是否會成爲問題? – 2011-03-22 21:41:42
LogDB是被測試的類。 jdbcAppender和logger是mock,並且這些被設置爲logDB實例。我的問題是,LogDB類是否在setLogger方法中調用logger.debug()?如果錯誤消息真的說明了我的想法,即在調用replay(logger)之前調用了logger.debug(),那麼logDB.setLogger似乎是可以調用logger.debug()的唯一地方。 – 2011-03-22 22:07:18