Почему этот тест TestNG проходит успешно, хотя фиктивный метод не вызывается?
Я использую 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 ответ
Решение
Вы пропускаете звонок Mockery.assertIsSatisfied()
,
Этот звонок сообщает jMock,когда вы ожидаете, что все ожидания будут удовлетворены. В противном случае он не будет знать, в какой точке вашего кода вы хотите, чтобы они были проверены.
Это также объясняется в статье" Начало работы".