如何在角度

时间:2015-05-29 09:22:54

标签: angularjs unit-testing mocking

有没有办法模拟提供程序配置的依赖项? 我有以下模块:

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

中发生了相同的行为

0 个答案:

没有答案