【问题标题】:Why does this TestNG test pass although the mock method is not invoked?为什么这个 TestNG 测试通过了,尽管没有调用 mock 方法?
【发布时间】:2012-10-08 15:30:46
【问题描述】:

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

【问题讨论】:

    标签: unit-testing testing testng jmock


    【解决方案1】:

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

    那个调用告诉 jMock什么时候你期望所有的期望都会得到满足。否则它不会知道您希望在代码中的哪一点进行验证。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多