Тестируйте конечные точки экспресс-API с помощью фиктивных данных с помощью JEST - PullRequest
0 голосов
/ 24 декабря 2018

Я пытаюсь протестировать свои конечные точки Express API с помощью Mockdata, используя JEST.

Ниже приведены мои конечные точки Express API, которые будут возвращать мне данные.

api-rout.ts

// Get release notes
routes.get('/release-notes', (req, res) => {
  request.get({
    url: 'https://host.com/rest/api/content/search?cql=parent=209266565',
    json: true
  })
    .pipe(res);
});
export default routes;

Ниже приведен мой тестовый код для проверки того, возвращает ли мой API данные.

Проблема в том, что я не проверяю вызов API, помогите мне исправить мой код

api-rout.test.ts

describe('Test API', () => {
  test('It should retun data', () => {
    const releaseNotesMockData = {
      'results': [
        {
          'id': '206169942',
          'type': 'page',
          'status': 'current',
          'title': 'Release 2018-10-18 Full Flow CM00294965',
        }]
    };
    const response = jest.fn().mockReturnValue(releaseNotesMockData)
    expect(response).toBe(response);
  });
});

1 Ответ

0 голосов
/ 24 декабря 2018

Прежде всего, вы должны смоделировать эту функцию, чтобы фактически запретить вызов конечной точки API (запретите сам запрос, потому что он всегда будет вызывать ваш API).Когда вы издеваетесь над своей функцией, вы также можете смоделировать возвращаемое значение в случае успеха или неудачи и сравнить это возвращаемое значение с теми, которые вы передаете для toBe или toEqual (рассмотрите toEqual для рекурсивного сравнения всех свойств экземпляров объекта).

Тогда я не уверен, что это правильный тест, потому что вы передаете результат и ожидаете, что его результат равен самому себе.Конечно, это всегда проходит испытание.Если вы действительно хотите проверить, была ли вызвана ваша функция, вы можете использовать .toHaveBeenCalled().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...