Почему этот тест 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,когда вы ожидаете, что все ожидания будут удовлетворены. В противном случае он не будет знать, в какой точке вашего кода вы хотите, чтобы они были проверены.

Это также объясняется в статье" Начало работы".

Другие вопросы по тегам