Я изучал mockito, и я понял основные применения вышеупомянутых функций из ссылки .
Но я хотел бы знать, можно ли его использовать для любых других случаев?
Я изучал mockito, и я понял основные применения вышеупомянутых функций из ссылки .
Но я хотел бы знать, можно ли его использовать для любых других случаев?
doThrow: в основном используется, когда вы хотите выбросить исключение, когда метод вызывается в макетном объекте.
public void validateEntity(final Object object){}
Mockito.doThrow(IllegalArgumentException.class)
.when(validationService).validateEntity(Matchers.any(AnyObjectClass.class));
doReturn: используется, когда вы хотите отправить обратно возвращаемое значение при выполнении метода.
public Socket getCosmosSocket() throws IOException {}
Mockito.doReturn(cosmosSocket).when(cosmosServiceImpl).getCosmosSocket();
doAnswer. Иногда вам нужно выполнить некоторые действия с аргументами, передаваемыми методу, например, добавить некоторые значения, выполнить некоторые вычисления или даже изменить их. doAnswer дает вам интерфейс ответа, который выполняемый в тот момент, когда этот метод вызывается, этот интерфейс позволяет вам взаимодействовать с параметрами с помощью аргумента InvocationOnMock. Кроме того, возвращаемое значение метода ответа будет возвратным значением метода издевательства.
public ReturnValueObject quickChange(Object1 object);
Mockito.doAnswer(new Answer<ReturnValueObject>() {
@Override
public ReturnValueObject answer(final InvocationOnMock invocation) throws Throwable {
final Object1 originalArgument = (invocation.getArguments())[0];
final ReturnValueObject returnedValue = new ReturnValueObject();
returnedValue.setCost(new Cost());
return returnedValue ;
}
}).when(priceChangeRequestService).quickCharge(Matchers.any(Object1.class));
doNothing: самый простой из списка, в основном он говорит Mockito ничего не делать, когда вызывается метод в макет-объекте. Иногда используется в методах или методах void return, которые не имеют побочных эффектов или не связаны с тестированием устройства, которое вы выполняете.
public void updateRequestActionAndApproval(final List<Object1> cmItems);
Mockito.doNothing().when(pagLogService).updateRequestActionAndApproval(
Matchers.any(Object1.class));
Если вы тестируете логический класс и вызываете некоторые внутренние методы void, doNothing совершенен.
Это зависит от типа тестового двойника, с которым вы хотите взаимодействовать:
Другими словами, с издевательством единственные полезные взаимодействия с сотрудником - это те, которые вы предоставляете. По умолчанию функции возвращают null, void-методы ничего не делают.