JasmineJS - Матчеры
Jasmine - это среда тестирования, поэтому она всегда нацелена на сравнение результата файла или функции JavaScript с ожидаемым результатом. Matcher работает аналогично в фреймворке Jasmine.
Matchers- это функция JavaScript, которая выполняет логическое сравнение фактического вывода и ожидаемого вывода. Есть два типа сопоставителейInbuilt matcher и Custom matchers.
Встроенный сопоставитель
Сопоставители, встроенные в структуру Jasmine, называются inbuilt matcher. Пользователь может легко им пользоватьсяimplicitly.
В следующем примере показано, как Inbuilt Matcher работает в среде Jasmine. В предыдущей главе мы уже использовали некоторые сопоставители.
describe("Adding single number ", function () {
//example of toEqual() matcher
it("should add numbers",function() {
expect(nested.add(5)).toEqual(5);
expect(nested.add(5)).toEqual(10);
});
it("should add numbers",function() {
expect(nested.addAny(1,2,3)).toEqual(6);
});
}
В примере toEqual () - это встроенный сопоставитель, который будет сравнивать результат add() и addAny() методы с аргументами, переданными в toEqual() сопоставители.
Пользовательские сопоставители
Сопоставители, которых нет во встроенной системной библиотеке Jasmine, называются custom matcher. Необходимо определить настраиваемый сопоставительexplicitly(). В следующем примере мы увидим, как работает настраиваемый сопоставитель.
describe('This custom matcher example', function() {
beforeEach(function() {
// We should add custom matched in beforeEach() function.
jasmine.addMatchers ({
validateAge: function() {
Return {
compare: function(actual,expected) {
var result = {};
result.pass = (actual > = 13 && actual < = 19);
result.message = 'sorry u are not a teen ';
return result;
}
};
}
});
});
it('Lets see whether u are teen or not', function() {
var myAge = 14;
expect(myAge).validateAge();
});
it('Lets see whether u are teen or not ', function() {
var yourAge = 18;
expect(yourAge).validateAge();
});
});
В приведенном выше примере validateAge()работает как сопоставитель, который фактически подтверждает ваш возраст с некоторым диапазоном. В этом примере validateAge () работает как настраиваемый сопоставитель. Добавьте этот JS-файл вSpecRunner.htmlи запустить то же самое. Он будет генерировать следующий вывод.