Я писал тесты в течение последнего месяца.И у меня уже есть макет некоторых обещаний / обратного вызова и работа с ним без проблем.
Но у меня есть случай, который я не знаю, как проверить?:
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 ), как я могу это проверить (в случае сбоя)?