在EasyMock中设定负面预期

时间:2012-02-15 12:34:28

标签: easymock

我想更好地理解EasyMock,并且使用它我想出了这个问题。

我想做的是对对象设置负面预期,检查在测试期间是否未调用某个方法(验证初始预期时)。

我知道验证的默认行为是检查两种情况:您的期望得到满足,并且没有执行其他调用;但是测试中没有记录没有调用某个方法,换句话说,如果你对这个方法设置了一个期望并且它没有被调用,那么你的测试将会失败(确认你的实现行为正常!)

有没有办法使用EasyMock进行设置?我在文档中找不到任何内容。

感谢您的关注,并提前为您提供帮助!

1 个答案:

答案 0 :(得分:11)

EasyMock的工作方式是这样的:

  1. 为您要模拟的界面创建一个Mock对象,
  2. 记录预期的行为,
  3. 将模拟对象切换为重播状态。
  4. 如果你没有设定任何期望,就像在下面一样:

    mock = createMock(YourInterface.class); // 1
    // 2 (we do not expect anything)
    replay(mock); // 3
    

    那么这意味着如果ClassUnderTest调用任何接口的方法,Mock对象将抛出AssertionError,如下所示:

    java.lang.AssertionError: 
      Unexpected method call yourMethodWhichYouDidNotExpectToBeCalled():
    

    这本身就是负面期望检查。