为什么这个EasyMock测试失败了?

时间:2011-03-22 21:17:25

标签: java unit-testing mocking easymock

您好我在下面的测试失败并给我这个错误,失败是在验证...但我无法理解。

  

java.lang.AssertionError:   验证期望失败:      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);
   }

1 个答案:

答案 0 :(得分:2)

刚刚发现了什么问题。

方法调用LogDB.log没有调用Logger.info(Object)它是callig Logger.log(Priority,Object)。

这就是为什么在重播之后,状态不一样,因为它期待一种呼叫并接收另一种呼叫。