Unit testing 尽管没有调用mock方法,为什么这个TestNG测试通过了?

Unit testing 尽管没有调用mock方法,为什么这个TestNG测试通过了?,unit-testing,testing,testng,jmock,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 Excepti

我使用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
你错过了一个电话

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

这一点在文章中也有解释