Jest - издевательский ответ от сервиса - PullRequest
0 голосов
/ 12 декабря 2018

Я писал тесты в течение последнего месяца.И у меня уже есть макет некоторых обещаний / обратного вызова и работа с ним без проблем.

Но у меня есть случай, который я не знаю, как проверить?:
context: У меня есть вызов во внешнюю службу (которая работает с обратным вызовом), НО я получаю информацию, работаю над ней и разрешаю ее как обещание для моего приложения.

Версия 0:

00. const processDataFunction = (data) => { 
01.  ... a lot of work ...
02.
03.  return beautyData
04. }
05. 
06. export const myCoolFunction = (args) => {
07.  const externalService = new ExternalService();
08.
09.  return new Promise((resolve, reject) => {
10.    externalService.functionWithCallback(args, (response, status) => {
11.      if (status === 'OK') {
12.         resolve(processDataFunction(response))
13.      } else {
14.         resolve({ error: status })
15.      }
16.    }
17.  });
18.}
19.

Моим первым шагом было изолировать функции, экспортировать оба и протестировать оба, основываясь на: Как проверить функцию обратного вызова с помощью Jasmine

Итак, теперь у меня есть: Версия 1:

lib.js:

export const processDataFunction = (data) => { ... }) // As previous but exported to be able to test it

export const coolFunction = (data) => { ... }) //  Just as previous

lib.test.js:

it('test processDataFunction') // Receive raw data and return beauty data is ok

it ('test coolFunction') // It initialized service and call the specific (mocked) function.

Мне не нравится идея экспорта частной функции, но это был лучший подход, который я мог сделать, и он работает действительно здорово.Но я все еще пропускаю одну вещь.

Проблема: Когда я запускаю свой тест с покрытиями, я пропускаю тесты для функции обратного вызова ( в строках с 11 по 15в версии 0 ), как я могу это проверить (в случае сбоя)?

...