我使用角度1.2.2和角度模拟1.3.5。这是测试我自己的定制服务的非常简单的测试代码。
angular.module('factories', [])
.factory('chimp', ['$log', function($log) {
return {
ook: function() {
$log.warn('Ook.');
}
};
}]);
describe('factories', function() {
var chimp;
var $log;
beforeEach(function() {
module('factories')
inject(function(_chimp_, _$log_) {
chimp = _chimp_;
$log = _$log_;
})
});
beforeEach();
describe('when invoked', function() {
beforeEach(function() {
chimp.ook();
});
it('should say Ook', function() {
expect("1").to.equal('Ook.');
});
});
});
然而,它给我的方式错误:[$ injector:modulerr] 为什么会这样?角度版本不适用于模拟版本吗?
答案 0 :(得分:1)
我认为你有一些无关的beforeEach
陈述。你介意给出整个错误吗?
同时,试试这个:
describe('factories', function() {
var chimp;
var $log;
beforeEach(function() {
module('factories')
inject(function(_chimp_, _$log_) {
chimp = _chimp_;
$log = _$log_;
})
});
describe('when invoked', function() {
it('should say Ook', function() {
chimp.ook();
expect($log.warn.logs).to.contrail(['Ook.']);
});
});
});
另外,请查看此solution,了解有关测试$log
的纯Q / A.
答案 1 :(得分:0)
在我将它改为1.2.2嘲讽之后,它起作用了。