我使用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

最佳答案

您错过了对Mockery.assertIsSatisfied()的呼叫。

当您期望所有期望都得到满足时,该呼叫将告诉jMock。否则,它将不知道您希望在代码的哪一点进行验证。

Getting Started article中也对此进行了说明。

09-25 15:39