通过cmd提示我的Protractor e2e测试运行正常。但是,只要我为AngularJS控制器添加一个简单的单元测试,就找不到angular-mocks
。
我在这样的Win 7 cmd提示符下运行Protractor,这对我的所有E2E UI测试都很有用:
> node_modules\.bin\protractor conf.js
但是,一旦我加入sat.controller.spec.js' in my
conf.js` -
错误是:
Stack:
TypeError: module is not a function
我的 spec.js 文件显示:
(function(){
describe('satController', function() {
beforeEach(module('SATApp')); // *** CRASHING HERE ***
it('Should do a good job, function(){
expect(true).toBe(true);
});
});
}());
这是我的量角器conf.js
:
var Jasmine2HtmlReporter = require('protractor-jasmine2-html-reporter');
exports.config = {
directConnect: true,
capabilities: {
'browserName': 'chrome'
},
framework: 'jasmine',
specs: [
'sat.index.spec.js',
'sat.TopNavBar.spec.js'
//,'sat.controller.spec.js'
]
};

仅供参考:我的应用程序正在http://localhost:64174上运行,我已将angular-mocks.js
添加到index.html
,但Jasmine测试找不到它。
所以主要的问题是:我在哪里引用angular-mocks.js以使Jasmine单元测试与我的角度模拟一起工作?
我已经看过specrunner.html示例,以及jasmine.json配置示例;但是,我正在与它斗争。
提前感谢...
* **更新 ***
出于完全的沮丧,我仔细研究了Karma runner
的单元测试。很高兴(至少现在)我设法使用angular-mocks.js
进行了非常基本的单元测试。
我做了以下事情(即http://karma-runner.github.io/1.0/intro/configuration.html):
1)npm install karma
2)`node_modules.bin \ karma init' (默认创建karma.conf.js)
3)将我的所有app文件添加到conf.js的files:[ ]
属性中)
看到这个很好的例子:https://github.com/yearofmoo-articles/AngularJS-Testing-Article/blob/master/test/karma-shared.conf.js
4)创建了我的controller.spec.js文件(另见这个很好的例子https://github.com/yearofmoo-articles/AngularJS-Testing-Article/blob/master/test/unit/controllers/controllersSpec.js)
5)来自cmd提示符:node_modules\.bin\karma start karma.conf.js