【发布时间】:2013-05-08 16:45:44
【问题描述】:
我正在开发一个由 SocketStream/node.js 服务器提供的 AngularJS 应用程序。 我有一个 AngularJS 服务,它在 SocketStream 服务器上调用 api 函数,到目前为止进展良好。
但是现在是开始编写第一个测试的时候了,想到的第一个测试框架是 Karma/Jasmine,因为这是推荐的 AngularJS 设置。
到目前为止一切都很好,但是由于我的 AngularJS 模块是使用“require”(SocketStream 的版本,not require.js)导入的,并且服务器 api 调用是测试的一部分,所以我需要配置 Karma加载 SocketStream(至少是它的客户端)。
我仔细查看了“https://github.com/yiwang/angular-phonecat-livescript-socketstream”,但是当我运行这个示例时,我得到了运行时错误,可能是因为我安装了更高版本的各种依赖项。
我通过将 'ss.client.packAssets()' 添加到 app.js 并运行 'SS_PACK=1 node app.js' 来打包我的 SocketStream 应用程序,设法解决了 'required' 问题,但是当我启动 karma 时,它会记录一条错误消息说:
'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 require 代码中的某个地方。也因为我在 DEBUG 模式下运行 karma 并且可以看到所有正在服务的文件。
我一直在尝试不同的方法来找出正在发生的事情,但现在有用。所以我的问题是:
还有其他人使用 Karma 成功测试了 AngularJS/SocketStream 吗? 有人对我如何解决或至少调试此问题有任何建议吗? 是否有任何替代/更好的解决方案?
【问题讨论】:
标签: node.js angularjs karma-runner socketstream