我想测试一个具有过滤依赖性的指令.我想注入实际的过滤器,而不是使用模拟.
这是我的嘲笑之前的每一个.如何注入实际过滤器?我尝试注入作为注入函数的一部分,但这似乎不起作用.
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(); }); });
解决方法
我在测试中做了类似的事情:
it('uses a filter',inject(function ($filter) { var result = $filter('filterName')(params); expect(result).toBe('something'); }));
也许它确实有帮助?