안녕하세요, 저는이 테스트를 실패하고 나에게이 오류를주었습니다. 실패는 확인 중입니다 ...하지만 이유는 알 수 없습니다.왜이 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);
}
예기치는했으나 충족되지 않은 debug() 호출이있는 것처럼 보입니다. LogDB는 원래 테스트하고자하는 정보 로그 외에도 모든 설정 도구에서 디버그 로깅을 수행합니까? –
당신의 질문을 이해할 수 있는지 확실하지 않습니다 ... LogDB는 데이터베이스에 그것을 삽입하는 책임이 있지만 위의 LogDB 생성자 호출에 DB 데이터가 없습니다. 문제가 될 수 있습니까? –
LogDB는 테스트중인 클래스입니다. jdbcAppender 및 logger는 mock이며 logDB 인스턴스로 설정됩니다. 내 질문은 LogLog 클래스가 setLogger 메서드에서 logger.debug()를 호출합니까? 오류 메시지가 실제로 내가 말한 것, 즉 logger.debug()가 replay (logger)를 호출하기 전에 호출되었다고 말하면 logDB.debug()를 호출 할 수있는 유일한 장소 인 것처럼 보입니다. –