Как протестировать метод javascript, который возвращает объект Promise, используя mocha-phantomjs

У меня есть пара модульных тестов, написанных на мокко, которые я могу запустить в браузере. Мне нужно автоматизировать эти тесты на сервере, где я буду писать команды CLI. Проблема в том, что когда я пытаюсь запустить тесты с помощью PhantomJS, я получаю сообщение об ошибке

ReferenceError: не удается найти переменную: Promise в файле:///C:/Halosys/halosysus_jslibrary/dest/hmsdk.js:5061 в файле:///C:/Halosys/halosysus_jslibrary/tests/ISession_Spec.js:29 в callFnAsync

(файл:///C:/Halosys/halosysus_jslibrary/node_modules/mocha/mo cha.js:4506)

Я в замешательстве, как исправить эту ошибку.


person Pradeep Keshavprakash    schedule 18.07.2016    source источник


Ответы (1)


PhantomJS не поддерживает промисы. Дополнительную информацию можно найти в системе отслеживания проблем PhantomJS (#12401). .

Вы можете попробовать использовать библиотеки es6-promise или promise-polyfill для расширения функциональности на данный момент.

person kb.    schedule 18.07.2016
comment
Я уже пробовал первый. Пробовал и другой. В обоих случаях я пытался добавить requirejs в зависимости и добавить операторы require. Тем не менее я получаю сообщение об ошибке «Не могу найти переменную: требуется». Можете ли вы сказать мне, как правильно включить требуемый модуль? - person Pradeep Keshavprakash; 18.07.2016
comment
другая проблема в том, что я не хочу писать тесты для возврата промисов. Объект Promise возвращается из метода, который я тестирую. - person Pradeep Keshavprakash; 18.07.2016
comment
@PradeepKeshavprakash Это слишком широкий вопрос, не видя вашей конкретной реализации, я предлагаю вам открыть отдельный вопрос для этого, показывающего также пример кода, чтобы воспроизвести ошибку. - person kb.; 18.07.2016
comment
нет ... мне нужно просто знать для любой среды тестирования ... как я могу правильно включить requirejs, чтобы использовать его для включения библиотек / плагинов, которые вы упомянули в своем первом ответе. - person Pradeep Keshavprakash; 18.07.2016
comment
Не зная, что вы пробовали, я мало что могу предложить, я сам этим не пользуюсь. В репозитории mocha-phantomjs есть билет, github.com/nathanboktae/mocha-phantomjs. /issues/80, в котором предлагаются способы включения доступа к require в ваших тестах. Несмотря на то, что сам билет устарел (и также относится к Node), он может быть применим и к вашей ситуации. - person kb.; 18.07.2016