Тестирование оболочки клиента Джерси

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

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

Eg.

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

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

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

Спасибо


person Karan    schedule 09.11.2013    source источник


Ответы (1)


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

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

person jaco0646    schedule 09.11.2013