2013-11-09 2 views
0

Я пытаюсь написать тест для клиента API, который использует Джерси-клиент для выполнения запросов.Тестирование обертки клиента Джерси

Я хотел подделать определенный ответ сервера, чтобы вернуть предварительно записанную строку json.

Например.

client().resource("/recommendations").queryParam("username", karan").get(Recommendation.class) 

должен вернуть соответствующий класс на основе строки json, которую я сохранил в файле.

Как я могу это подделать? Или мне нужно создать экземпляр поддельного сервера, чтобы вернуть фактический json, и пусть джерси-клиент сделает это?

Благодаря

ответ

1

Одним из популярных решений является использование рамки тестирования как EasyMock или Mockito создать макет клиента Джерси, который ожидает конкретных вызовов методов и возвращает предопределенные данные (например, JSON). Затем макет вводится в клиентский интерфейс API вместо реального клиента из Джерси.

В общем, вы также можете избежать создания фреймворков, создав себя самостоятельно, т. Е. Подклассифицируя клиент и переопределяя методы, которые вы ожидаете вызвать, для возврата предопределенных данных. Затем передайте свой макет клиенту API в качестве аргумента конструктора. Независимо от того, оправдываете ли вы рамки, зависит от того, насколько вы насмехаетесь над вами, что частично определяется количеством внешних зависимостей.

Смежные вопросы