2016-04-04 5 views
0

私はここで

$filter is not defined.

unit testに新しいですし、カスタムフィルタのためのユニットテストを書かれていると私はエラーを取得していますが、私のコードです:

ユニットテストのために:

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"); 
    }; 
}); 

どこが間違っているのか教えてください。

+0

あなたは、コントローラで$フィルタ依存性を注入しましたか? – MrNew

+0

はい、このカスタムフィルタはアプリケーションで動作しています......そしてここで$ filterは変数名であり、その変数には関数wrightを代入していますか? –

+0

あなたの変数は問題ありませんが、依存関係を注入していない場合でも、 "定義されていません"というエラーが表示されます。Hiroのコードはコントローラに$ filterを注入した意味です。あなたが既にそれを最初に注入したかどうかを知りたい。 – MrNew

答えて

1

あなたは自分のコントローラ 例に$filterを注入する必要があります。

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

このフィルタはカスタムフィルタであり、コントローラによって$ filter注入がないので、テストケースでのみ行う必要があります。これを行う? –

関連する問題