Angular,为过滤器设置业力测试

时间:2015-01-28 05:25:21

标签: angularjs jasmine karma-runner

在这里尝试为过滤器设置测试,这是我所拥有的

过滤器:

 angular.module('myApp')
.filter('discount', function(){
return function(input, discount){
    if (input) return  input*(discount);
 };
});

测试

describe("Unit: discount", function() {

var filter

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

inject(function($injector){
  filter = $injector.get('$filter')('discount');
});
});

it('should filter the parameters passed', function(){
expect(filter(1, 0.5)).toBe(0.5);
});
});

我收到的错误:

  PhantomJS 1.9.8 (Mac OS X) Unit: discount should filter the parameters passed FAILED
   Error: [$injector:unpr] Unknown provider: discountFilterProvider <- discountFilter

预期的效果是将过滤器1作为输入,将0.5作为折扣,并期望返回0.5。我是一个全新的工作,我被困,所以我可以使用一点帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

错误:

Unknown provider: discountFilterProvider <- discountFilter

告诉你$ injector无法找到discountFilter。 模块myApp未正确加载。

你应该在每个之前尝试这种语法:

var filter;

beforeEach(module('myApp'));

beforeEach(function (){
    inject(function($injector){
        filter = $injector.get('$filter')('discount');
    });
});