Проверка ложных звонков в определенном тесте - PullRequest
0 голосов
/ 30 мая 2019

В одном из моих юнит-тестов я пытаюсь проверить, никогда не вызывался один из моих фиктивных методов.И проблема в том, что этот макет является глобальным @beforeClass макетом, общим для многих других тестов.

Итак, когда я пытаюсь проверить, никогда не вызывается макет или нет, он всегда терпит неудачу, как и другиетесты называют это издевательством.Есть ли способ использовать Mockito для проверки вызова макета только для этого теста?

Одно из решений, которое я могу придумать, - преобразование моего общего макета из @BeforeClass в @Before (чтобы перед каждым тестом макетэто воссоздано).Но хотел проверить, есть ли другие решения, не касаясь общих BeforeClass макетов.

@BeforeClass
  public void before() {
    someClassMock = mock(someClass.class);
    when(someClassMock.aMethodCall(any()).thenReturn(true);
  }

// Bunch of tests


  @Test
  public void oneOfTheManytest(){
  //some code where someClassMock.aMethodCall is NOT called

    verify(someClassMock, never()).aMethodCall(any());
    // ^^ This always fails, even when I am sure this mock 
    // is not called for this test. 
    // I think this looks if this mock is called or not overall for this test file.

  }

Может кто-нибудь помочь с решением, где я могу проверить вызов метода макета для конкретного теста?

1 Ответ

0 голосов
/ 30 мая 2019

Я могу сделать вывод, что ваши тесты не соответствуют AAA. Каждый тест должен выполняться отдельно, и его успех не должен зависеть от выполнения других тестов.

Лучше всего было бы извлечь макет, который необходимо повторить, в вспомогательный метод и вызвать его в разделе аранжировки вашего теста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...