具有过滤依赖性的测试指令

时间:2014-11-18 13:55:09

标签: angularjs angularjs-directive tdd jasmine

我想测试一个具有过滤依赖性的指令。我想注入实际的过滤器,而不是使用模拟。

这是我的嘲笑beforeEach。如何注入实际filter?我尝试注入inject function,但这似乎不起作用。

beforeEach(function() {

    // filter mock
    someFilterMock = function(value) {
        return value;
    };

    // get app
    module('app');
    // get html templates
    module('templates');

    // replace filter with a mock
    module(function($provide) {
        $provide.value('someFilterFilter', someFilterMock);
    });

    // inject & compile
    inject(function($rootScope, $compile) {
        // create scope
        scope = $rootScope.$new();
        // create element using directive
        element = angular.element('<this-is-directive />');
        $compile(element)(scope);
        scope.$digest();
    });

});

1 个答案:

答案 0 :(得分:1)

我在测试中做了类似的事情:

it('uses a filter', inject(function ($filter) {
    var result = $filter('filterName')(params);
    expect(result).toBe('something');
}));

也许它有帮助吗?