2014-01-15 3 views
1

У меня есть фильтр, который принимает аргументы:Тестирование параметризованные AngularJS фильтр Жасмин

{{'filter input' | filterName:arg1:arg2}} 

Обычно для проверки фильтра я:

it('should work',inject(function($filter){ 
    expect($filter('filterName')('filter input')).toEqual('whatever'); 
})); 

Как включить дополнительные аргументы :arg1:arg2 в тесте?

ответ

2

Это было на самом деле вроде очевидно:

it('should work',inject(function($filter){ 
    expect($filter('filterName')('filter input', 'arg1', 'arg2)).toEqual('whatever'); 
})); 
0

Я вчера был интересно это сам. Я наткнулся на сообщение в блоге, которое показало мне. Тестирование фильтра в AngularJS похоже на тестирование функции в JavaScript. Если у вас есть фильтр, который выглядит следующим образом:

.filter('SomeFilter', function() { 
     return function (arg1, arg2) { 
      return arg1 + ' ' + arg2; 
     } 
} 

Вы можете проверить это следующим образом:

it('should work', inject(function($filter) { 
    var arg1 = 'hello'; 
    var arg2 = 'world'; 

    var someFilter = $filter('SomeFilter'); 
    var result = someFilter(arg1, arg2); 
    expect(result).toBe(arg1 + ' ' + arg2); 
})); 

Есть другой синтаксис вещи тоже. Я только что нашел сообщение в блоге, которое я упомянул о testing filters in angularjs

Смежные вопросы