我有一个我创建的自定义过滤器。每this post我在我的 Jasmine 中创建了以下...
beforeEach(module("workOrderManagerApp"));
var mockSearchFilter = function(text, tails, fillTailList) {
return null;
};
beforeEach(function() {
module(function($provide) {
$provide.value('searchItems', mockSearchFilter);
});
});
但是当我运行它时,它仍然运行非模拟过滤器。我在这里错过了什么?
最佳答案
您忘记将 Filter
添加到过滤器名称的末尾,因此 searchItems
将是 searchItemsFilter
。这不是直观的,你只需要知道这一点。 Angular 像服务一样存储过滤器,但会在您传入的名称末尾添加 Filter
。
你会像这样注入(inject)一个过滤器:
.controller('MyController', [
'searchItemsFilter',
function(searchItems) {
}
])
因此您可以使用以下方式模拟它:$provide.value('searchItemsFilter', mockSearchFilter);
关于angularjs - 如何在 Angular/Jasmine 中模拟自定义过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27361619/