如何分解注射?

时间:2014-03-20 17:22:11

标签: angularjs jasmine

我进行了一项包含10项功能的单元测试,所有这些功能都对自定义服务进行inject回调:

describe('Something', function() {

    beforeEach(module('myApp'));

    it('Foo == bar ?', inject(function(ctrl) {
        expect(ctrl.foo).toEqual('Bar');
    }));

    // 10 other function with the same injection
});

有没有办法将这些注入分解为beaforeach函数?

编辑:

我的 controller.js

var app = angular.module('myApp');

app.factory('ctrl', function(){
    return {'foo': 'Bar'};
});

1 个答案:

答案 0 :(得分:2)

describe('Something', function() {
    var control;

    beforeEach(function() {
         module('myApp');

         inject(function(_ctrl_) {
             control = _ctrl_;
         });

         //or can use $injector
         /*inject(function($injector) {
             control = $injector.get('ctrl');
         });*/
    });

    it('Foo == bar ?', function() {
        expect(control.foo).toEqual('Bar');
    });

    // 10 other functions will use control same as above
});