2016-07-20 1 views
3

При запуске реагирующей родной тесты в мокко, я получаю следующее сообщение об ошибке:Получения ReferenceError: выборка не определен, когда работают реагируют родные тесты в мокко

> mocha --require test/init.js --compilers js:test/compiler.js 'src/**/*.spec.js' 

Initializing tap mocha reporter... 
1..7 
ok 1 test1 
… 
not ok 7 test7 
    ReferenceError: fetch is not defined 
     at foo (src/foo.js:59:8) 
     at Context.<anonymous> (src/__specs__/foo.spec.js:9:30) 
# tests 7 
# pass 6 
# fail 1 
npm ERR! Test failed. See above for more details. 

ответ

10

Проблемы, что выборка не доступен в среде узла, такой как мокко. Я не уверен, почему response-native-mock (который я также использую) не имеет для этого макета, но решение должно было потребовать isomorphic-fetch при инициализации моих мокко-тестов.

В частности, добавить файл инициализации в вашей мокко командной строки, если вы не один уже:

> mocha --require init.js … 

и в init.js, требуют изоморфными-выборки:

require('isomorphic-fetch') 

Затем перезапустите мокко:

> mocha --require test/init.js --compilers js:test/compiler.js 'src/**/*.spec.js' && standard 

Initializing tap mocha reporter... 
1..7 
ok 1 test1 
… 
ok 7 test7 
# tests 7 
# pass 7 
# fail 0 
+2

Или 'mocha --require isomorphic-fetch'. благодаря! – Andy

+0

спасатель жизни! fyi - раньше я использовал 'whatwg-fetch', и только когда замечание' fetch' вызывает ошибки в среде узла JS (например, тесты mocha), только тогда я понял, что 'whatwg-fetch' работает только в среде браузера. Я заменил все 'whatwg-fetch' на' isomorphic-fetch' (с инструкциями, аналогичными вашим) и теперь прекрасно работает! – Atlas7