Я работаю над приложением AngularJS, которое доставляется сервером SocketStream/node.js. У меня есть служба AngularJS, которая вызывает функции API на сервере SocketStream, и до сих пор прогресс был хорошим.
Но теперь пришло время начать писать первые тесты, и первая среда тестирования, которая пришла на ум, — это Karma/Jasmine, так как это рекомендуемая настройка AngularJS.
Пока все хорошо, но поскольку мои модули AngularJS импортируются с использованием «require» (версия SocketStream, не require.js), а вызовы API сервера являются частью теста, мне нужно настроить Karma для загрузки SocketStream (по крайней мере, его клиентская сторона).
Я внимательно изучил 'https://github.com/yiwang/angular-phonecat-livescript-socketstream', но когда я запускаю этот пример, я получаю ошибки времени выполнения, возможно, потому, что у меня установлены более поздние версии различных зависимостей.
Мне удалось разрешить «требуется», упаковав мое приложение SocketStream, добавив «ss.client.packAssets()» в app.js и запустив «SS_PACK=1 node app.js», но когда я запускаю карму, он регистрирует сообщение об ошибке. говоря:
'Chrome 23.0 (Linux) ERROR
Uncaught TypeError: undefined is not a function
at /the...path/client/static/assets/app/1368026081351.js:25'
«1368026081351.js» — это упакованный файл активов SocketStream. Если я не загружу его, сообщение об ошибке будет выглядеть примерно так: «require is undefined», поэтому я думаю, что ошибка происходит где-то внутри требуемого кода SocketStream. Также потому, что я запускаю карму в режиме DEBUG и вижу все обслуживаемые файлы.
Я пробовал разные подходы, чтобы узнать, что происходит, но теперь это не помогло. Итак, мои вопросы:
Кто-нибудь еще успешно тестирует AngularJS/SocketStream с помощью Karma? У кого-нибудь есть какие-либо предложения относительно того, как я могу исправить или хотя бы отладить эту проблему? Есть ли альтернативы/лучшие решения?