我正在尝试对过滤器进行单元测试。此过滤器依赖于另一个过滤器。我一直无法模仿这个过滤器。我已经看到了为控制器模拟过滤器的方法,我已经看到了单独测试过滤器的方法,但不是这样。我试过简单地提供模拟过滤器无济于事:
// compacted for brevity
var someService = {};
var injectedFilter = function(input) { return output; }
beforeEach(function() {
// inject mocked dependencies
module(function ($provide) {
$provide.value('someService', someService);
$provide.value('injectedFilter', injectedFilter); // with Filter suffix
...
我已尝试通过$filterProvider.register
破坏过滤器,但似乎没有效果。我甚至尝试使用Jasmine的spyOn
和.and.callFake
来模拟它,但因为语法是filter("name")
并且它不对某个对象进行操作,它会失败。
为另一个滤镜选择过滤器的正确方法是什么?
答案 0 :(得分:1)
$provide.factory
:$provide.factory('injectedFilter', injectedFilter);
$filterProvider.register
完全相同:$filterProvider.register('injected', injectedFilter);