我使用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中也对此进行了说明。