Рубрики
Без рубрики

Mockito Проверить

Проверка Mockito, проверка взаимодействия Mockito с количеством раз, Проверка Mockito, проверка взаимодействия, проверка, проверка, порядок, пример проверки Mockito

Автор оригинала: Pankaj Kumar.

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

Mockito Проверить

  • Метод Mockito verify() также может быть использован для проверки количества вызовов методов. Мы можем проверить точное количество раз, по крайней мере один раз, по крайней мере, не более одного раза вызова для издевательского метода.
  • Мы можем использовать verifyNoMoreInteractions() после всех вызовов метода verify (), чтобы убедиться, что все проверено. Если какая-либо проверка метода все еще остается, она завершится ошибкой и выдаст соответствующее сообщение.
  • verifyZeroInteractions() поведение такое же, как verifyNoMoreInteractions() метод.
  • Мы можем использовать метод inOrder() для проверки порядка вызова метода. Мы можем пропустить вызов метода, но проверяемые методы должны быть в том же порядке.

Давайте рассмотрим некоторые примеры метода проверки mockito.

Простой пример проверки Mockito()

@Test
void test() {
	List mockList = mock(List.class);
	mockList.add("Pankaj");
	mockList.size();
	
	verify(mockList).add("Pankaj");
}

Выше метод проверки пройдет, если add("Pankaj") вызывается только один раз для объекта mockedlist.

Это то же самое, что вызывать с аргументом times(1) с помощью метода verify.

verify(mockList, times(1)).size();

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

verify(mockList).add(anyString());
verify(mockList).add(any(String.class));
verify(mockList).add(ArgumentMatchers.any(String.class));

Обратите внимание, что org.mockito.Класс Mockito предоставляет статические методы для большинства полезных методов в среде Mockito, это помогает нам в написании свободного кода, импортируя их с помощью import static .

Mockito проверяет количество раз

Метод Mockito verify () перегружен , второй – проверка(T макет, режим проверки) . Мы можем использовать его для проверки количества вызовов.

verify(mockList, times(1)).size(); //same as normal verify method
verify(mockList, atLeastOnce()).size(); // must be called at least once
verify(mockList, atMost(2)).size(); // must be called at most 2 times
verify(mockList, atLeast(1)).size(); // must be called at least once
verify(mockList, never()).clear(); // must never be called

Верифиномореактивности()

Этот метод можно использовать после всех методов проверки, чтобы убедиться, что все взаимодействия проверены. Он не пройдет тест, если на издевательском объекте будут какие-либо непроверенные взаимодействия.

// all interactions are verified, so below will pass
verifyNoMoreInteractions(mockList);
mockList.isEmpty();
// isEmpty() is not verified, so below will fail
verifyNoMoreInteractions(mockList);

Второй вызов функции verifyNoMoreInteractions() завершится ошибкой с сообщением об ошибке в виде:

org.mockito.exceptions.verification.NoInteractionsWanted: 
No interactions wanted here:
-> at com.journaldev.mockito.verify.MockitoVerifyExamples.test(MockitoVerifyExamples.java:36)
But found this interaction on mock 'list':
-> at com.journaldev.mockito.verify.MockitoVerifyExamples.test(MockitoVerifyExamples.java:34)
***
For your reference, here is the list of all invocations ([?] - means unverified).
1. -> at com.journaldev.mockito.verify.MockitoVerifyExamples.test(MockitoVerifyExamples.java:18)
2. -> at com.journaldev.mockito.verify.MockitoVerifyExamples.test(MockitoVerifyExamples.java:19)
3. [?]-> at com.journaldev.mockito.verify.MockitoVerifyExamples.test(MockitoVerifyExamples.java:34)

Одной из замечательных особенностей Mockito является сообщение об исключении, оно четко указывает, где наш тест не прошел, чтобы мы могли легко его исправить.

Проверка правильности действий()

Поведение метода verifyZeroInteractions() совпадает с поведением метода verifyNoMoreInteractions ().

Map mockMap = mock(Map.class);
Set mockSet = mock(Set.class);
verify(mockList).isEmpty();
verifyZeroInteractions(mockList, mockMap, mockSet);

Mockito проверяет только вызов метода

Если мы хотим убедиться, что вызывается только один метод, мы можем использовать только() с методом проверки.

Map mockMap = mock(Map.class);
mockMap.isEmpty();
verify(mockMap, only()).isEmpty();

Mockito Проверяет порядок вызова

Мы можем использовать Для того, чтобы проверить порядок вызова. Мы можем пропустить любой метод для проверки, но проверяемые методы должны вызываться в том же порядке.

InOrder inOrder = inOrder(mockList, mockMap);
inOrder.verify(mockList).add("Pankaj");
inOrder.verify(mockList, calls(1)).size();
inOrder.verify(mockList).isEmpty();
inOrder.verify(mockMap).isEmpty();

Резюме

Методы Mockito verify() можно использовать, чтобы убедиться, что вызываются методы макетного объекта. Если какой-либо вызов метода удален по ошибке, то метод проверки выдаст ошибку.