Как вы имитируете RESTDataSource сервера Apollo для модульного тестирования с помощью Jest? - PullRequest
1 голос
/ 26 мая 2020

Я пытаюсь протестировать источник данных на моем сервере Apollo, основанный на сервере Apollo Server RESTDataSource (https://www.apollographql.com/docs/apollo-server/data/data-sources/#rest -data-source ). Пытаюсь проверить с помощью Jest. В классе есть методы, которые извлекают данные из внешнего REST API, а также из другого модуля, вызывающего второй API (так что этот RESTDataSource в конечном итоге зависит от двух внешних API, один из которых вызывается непосредственно здесь, а другой называется косвенно).

Я не специалист по тестированию и не понимаю, как имитировать внешние API. В GraphQL Tools есть инструменты, позволяющие имитировать сервер, но я не уверен, что это то, что мне нужно. Или мне использовать методы Jest для имитации классов ES6 , забыв, что это сервер GraphQL? Если да, то, поскольку я работаю с class, могу ли я просто имитировать методы, используя что-то вроде MyClass.myMethod в качестве имитируемого метода?

Изменится ли что-нибудь в том, как я это делаю, если я использую TypeScript (каковым является я), кроме настройки Jest для работы с TypeScript?

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

Спасибо за любые подсказки.

...