尽管未调用mock方法,为什么TestNG测试通过?

时间:2012-10-08 07:26:39

标签: unit-testing testing testng jmock

我使用TestNG和jMock进行单元测试但是,我遇到了TestNG的问题。当我期望调用模拟对象方法而不是它时,它将测试标记为已通过!

public class SomeTestTest {


  Mockery mocker = new Mockery();

  SomeInterface someInterface = mocker.mock(SomeInterface.class);

  @Test
  public void testName() throws Exception {
    mocker.checking(new Expectations() {{
      oneOf(someInterface).someMethod();
    }});
  }
}

这是我收到的报告

Custom suite
Total tests run: 1, Failures: 0, Skips: 0

1 个答案:

答案 0 :(得分:1)

您错过了对Mockery.assertIsSatisfied()的电话。

该调用告诉jMock 何时您希望满足所有期望。否则,它不知道您希望在代码中的哪一点进行验证。

这也在Getting Started article中解释。