运行自定义过滤器的测试用例时,$ filter不是一个函数?

时间:2016-04-04 07:13:10

标签: angularjs unit-testing

我是unit test的新用户并为自定义过滤器编写了单元测试,我收到了错误,

  

$ filter未定义。

这是我的代码:

单元测试:

describe('filter', function() {

    beforeEach(module('usp'));

    var $filter;

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

    it('should format the date in this format MMM-DD-YYYY', function() {
      var dateFormat = $filter('dateFormat');
      expect(dateFormat('13-10-2016')).toEqual('10-13-2016');
    });
});

自定义过滤器:

angular.module('usp').filter('dateFormat', function () {
     return function (input) {
         return moment(input).format("MMM-DD-YYYY");
     };
 });

请告诉我哪里出错了?

1 个答案:

答案 0 :(得分:1)

您只需将$filter注入控制器即可 示例:

var MyApp = angular.module('appName', []);
MyApp.controller('IndexController', ['$scope','$filter'],function($scope, $filter) {
/* Your Code here  */
});