【问题标题】:modulerr in filter test jasmine/angular injection过滤器测试茉莉花/角注入中的modulerr
【发布时间】:2014-09-12 08:38:15
【问题描述】:

我正在尝试对我的过滤器“manufacturerFilter”运行 Angular 测试。

describe('productApp', function() {
    var manufacturerFilter;

    beforeEach(function() {
        module('productApp', ['ui.bootstrap']);
    });

    beforeEach(inject(function(_$filter_) {
        manufacturerFilter = _$filter_('manufacturerFilter');
    }));

    it('has a manufacturerFilter filter', function() {
        expect(manufacturerFilter.not.toBeNull());
    });

});

并得到以下错误:

Error: [$injector:modulerr] http:// errors.angularjs.org/1.3.0-rc.0/$injector/modulerr?p0=ui.bootstrap&p1=Error%3A%20%5Bng%3Aareq%5D%20http%3A%2F%2Ferrors.angularjs.org%2F1.3.0-rc.0%2Fng%2Fareq%3Fp0%3Dfn%26p1%3Dnot%2520a%2520function%252C%2520got%2520string%0A%20%20%20%20at%20Error%20(native)%0A%20%20%20%20at%20https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.3.0-rc.0%2Fangular.min.js%3A6%3A421%0A%20%20%20%20at%20Jb%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.3.0-rc.0%2Fangular.min.js%3A19%3A466)%0A%20%20%20%20at%20kb%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.3.0-rc.0%2Fangular.min.js%3A20%3A47)%0A%20%20%20%20at%20Rb%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.3.0-rc.0%2Fangular.min.js%3A33%3A93)%0A%20%20%20%20at%20Object.e%20%5Bas%20invoke%5D%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.3.0-rc.0%2Fangular.min.js%3A35%3A142)%0A%20%20%20%20at%20https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.3.0-rc.0%2Fangular.min.js%3A34%3A192%0A%20%20%20%20at%20r%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.3.0-rc.0%2Fangular.min.js%3A7%3A296)%0A%20%20%20%20at%20f%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.3.0-rc.0%2Fangular.min.js%3A33%3A419)%0A%20%20%20%20at%20Object.Hb%20%5Bas%20injector%5D%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.3.0-rc.0%2Fangular.min.js%3A37%3A99)

应用程序:

var myApp = angular.module('productApp', ['ui.bootstrap']);

过滤器:

myApp.filter('manufacturerFilter', function() {
return function(input, $scope) {

 // filter code

  }
});

这以前有效,但在添加一些代码后,主要是对 ui-bootstrap 的依赖,测试没有失败。执行似乎甚至没有达到断言,但是在注入过滤器时失败了?

【问题讨论】:

    标签: javascript angularjs unit-testing testing jasmine


    【解决方案1】:

    尝试像这样运行它:

    describe('productApp', function() {
        var manufacturerFilter;
    
        beforeEach(function() {
            module('productApp');
            inject(function(_$filter_) {
                manufacturerFilter = _$filter_('manufacturerFilter');
            });
        });
    
        it('has a manufacturerFilter filter', function() {
            expect(manufacturerFilter.not.toBeNull());
        });
    
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      • 2017-05-02
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      相关资源
      最近更新 更多