Tiny-Mock
Введение
Tiny-mock — это облегчённая структура для создания mock-объектов, предназначенная для разделения mock и реального кода.
Особенности
Tiny-mock включает в себя локальный mock (local-mock) и сервисный mock (server-mock).
Если требуется использовать mock только при вызове определённого интерфейса, не выполняя реальную логику, а используя локальную ветвь mock, то local-mock может удовлетворить ваши требования.
Если вы хотите использовать mock при вызове определённого интерфейса и вызывать сторонний mock-сервис вместо реальной логики, вам нужно использовать local-mock вместе с server-mock.
I. local-mock
Предоставляет три вида аннотаций: @MockReturn, @MockBy, @MockByHttp. Они соответствуют трём видам конфигураций XML: MockReturnXmlItem, MockByXmlItem, MockByHttpXmlItem.
Форма аннотации: @MockReturn. Используется на реальном интерфейсе. При вызове реального интерфейса используется указанное пользователем значение.
/**
Конкретные значения:
String THROW = "THROW()"; // выбрасывает исключение String RANDOM = "RANDOM()"; // возвращает случайный объект String RANDOM_EXCEPTION = "RANDOM_EXCEPTION()"; // возвращает случайный объект или выбрасывает исключение.
Форма конфигурации XML:
Конкретный пример:
Используется на реальном интерфейсе и делегирует выполнение реальной логики третьему классу, затем возвращая результат.
Форма аннотации: @MockBy.
/**
Форма конфигурации XML:
Пример:
Использует сторонний Mock-сервис для делегирования выполнения реальной логики и возврата результата mock.
Для обеспечения лёгкости и поддержки гетерогенных систем здесь используется HTTP-вызов для вызова стороннего mock-сервиса (может использоваться вместе с mock-server или может быть разработан самостоятельно).
Форма аннотации: @MockByHttp.
/**
Форма конфигурации XML:
Пример:
II. server-mock
Получает запросы mock от local-client и направляет их соответствующему обработчику запросов mock для обработки, а затем возвращает результат mock.
По умолчанию запросы local-client направляются на http://xxx.xxx.xxx:xx/mock/class/method?params=xxx, но также можно указать адрес маршрутизации.
server-mock использует Spring MVC и развёртывается вместе с Tomcat.
Концепция
return foo; }
// Конфигурация (подробнее см. src/test/resources/beans/beans-mock.xml)
<bean class="com.kvn.mock.local.config_mock.MockReturnXmlItem"
p:mockedMethodFullPath="com.kvn.mock.local.test.ServiceA#method_12()"
p:returnValue="RANDOM()" />
Пример MockBy:
// Форма аннотации
@MockBy(delegateMethodFullPath="com.kvn.mock.local.test.MockServiceA#mockMethod_4()")
public String method_4() {
System.out.println("Выполнение реального метода: method_4");
return "do method_4------[real method methodA_4]";
}
// Конфигурация (подробнее см. src/test/resources/beans/beans-mock.xml)
<bean class="com.kvn.mock.local.config_mock.MockByXmlItem"
p:mockedMethodFullPath="com.kvn.mock.local.test.ServiceA#method_14(java.lang.String,com.kvn.mock.local.test.Foo)"
p:delegateMethodFullPath="com.kvn.mock.local.test.MockServiceA#mockMethod_14(java.lang.String,com.kvn.mock.local.test.Foo)" />
Пример MockByHttp:
// Форма аннотации
@MockByHttp
public String method_15(){
System.out.println("Выполнение реального метода: method_15");
return "do method_15------[real method method_15]";
}
// Конфигурация (подробнее см. src/test/resources/beans/beans-mock.xml)
<bean class="com.kvn.mock.local.config_mock.MockByHttpXmlItem"
p:mockedMethodFullPath="com.kvn.mock.local.test.ServiceA#method_17()" />
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )