有没有办法模拟提供程序配置的依赖项? 我有以下模块:
angular
.module('xApp', [])
.constant('constantOne', 'value one')
.constant('constantTwo', 'value two')
.provider('foo', ['constantOne', function(constantOne) {
return {
$get: ['constantTwo', function(constantTwo) {
return constantOne;
}]
}
}]);
并测试:
describe('foo', function () {
// load the controller's module
beforeEach(module('xApp', function($provide) {
$provide.constant('constantOne', 'test value one');
$provide.constant('constantTwo', 'test value two');
}));
it('should show the problem', inject(function (constantOne, constantTwo, foo) {
expect(constantOne).toBe('test value one'); // passes
expect(constantTwo).toBe('test value two'); // passes
expect(foo).toBe('test value one'); // fails, the value returned is 'value one'
}));
});
问题在于嘲弄constantOne - 提供商' foo'看到被模拟的原始值instad。
我使用了角度1.2.17,但也检查了在1.4
中发生了相同的行为