JasmineJS - Kontrola równości
Jasmine udostępnia wiele metod, które pomagają nam sprawdzić równość dowolnej funkcji i pliku JavaScript. Poniżej znajduje się kilka przykładów sprawdzania warunków równości.
ToEqual ()
ToEqual()to najprostszy element dopasowujący obecny we wbudowanej bibliotece Jasmine. Po prostu dopasowuje to, czy wynik operacji podanej jako argument tej metody jest zgodny z jej wynikiem, czy nie.
Poniższy przykład pomoże ci zrozumieć, jak działa ten dopasowywanie. Mamy dwa pliki do przetestowania, nazwane jako“expectexam.js” i inny, przez który musimy przetestować “expectSpec.js”.
Expectexam.js
window.expectexam = {
currentVal: 0,
};
ExpectSpec.js
describe("Different Methods of Expect Block",function () {
it("The Example of toEqual() method",function () {
//this will check whether the value of the variable
// currentVal is equal to 0 or not.
expect(expectexam.currentVal).toEqual(0);
});
});
Po pomyślnym wykonaniu te fragmenty kodu dadzą następujące dane wyjściowe. Pamiętaj, że musisz dodać te pliki do sekcji nagłówkaspecRunner.html zgodnie z zaleceniami we wcześniejszym przykładzie.
not.toEqual ()
not.toEqual() działa dokładnie odwrotnie do toEqual (). not.toEqual() jest używany, gdy musimy sprawdzić, czy wartość nie pasuje do wyniku jakiejkolwiek funkcji.
Zmodyfikujemy powyższy przykład, aby pokazać, jak to działa.
ExpectSpec.js
describe("Different Methods of Expect Block",function () {
it("The Example of toEqual() method",function () {
expect(expectexam.currentVal).toEqual(0);
});
it("The Example of not.toEqual() method",function () {
//negation testing expect(expectexam.currentVal).not.toEqual(5);
});
});
Expectexam.js
window.expectexam = {
currentVal: 0,
};
W drugim bloku oczekiwania sprawdzamy, czy wartość parametru currentVal jest równe 5, ponieważ wartość currentVal wynosi zero, dlatego nasz test kończy się pomyślnie i daje nam zielone wyjście.
Być()
toBe()matcher działa podobnie jak toEqual (), jednak różnią się od siebie technicznie. toBe () dopasowuje do typu obiektu, podczas gdytoEqual() pasuje do równoważności wyniku.
Poniższy przykład pomoże ci zrozumieć zasadę działania dopasowania toBe (). Ten element dopasowujący jest dokładnie odpowiednikiem operatora „===” w JavaScript, podczas gdy metoda toEqual () jest podobna do operatora „==” w JavaScript.
ExpectSpec.js
describe("Different Methods of Expect Block",function () {
it("The Example of toBe() method",function () {
expect(expectexam.name).toBe(expectexam.name1);
});
});
Expectexam.js
window.expectexam = {
currentVal: 0,
name:"tutorialspoint",
name1:tutorialspoint
};
Nieznacznie zmodyfikujemy nasze expectexamPlik JavaScript. Dodaliśmy dwie nowe zmienne,name i name1. Proszę znaleźć różnicę między tymi dwoma dodanymi zmiennymi - jedna jest typu string, a druga nie jest typu string.
Poniższy zrzut ekranu to wynik naszego testu, w którym czerwony krzyżyk wskazuje, że te dwie wartości nie są równe, podczas gdy oczekuje się, że będą równe. Dlatego nasz test zawodzi.
Zmieńmy obie zmienne, name i name1 jako zmienne typu String i uruchom to samo SpecRunner.htmljeszcze raz. Teraz sprawdź wyjście. To udowodni, że toBe () nie tylko pasuje do równoważności zmiennej, ale także pasuje do typu danych lub typu obiektu zmiennej.
nie być()
Jak widać wcześniej, not jest niczym innym jak zaprzeczeniem metody toBe (). Błąd kończy się niepowodzeniem, gdy oczekiwany wynik pasuje do rzeczywistego wyniku funkcji lub pliku JavaScript.
Poniżej znajduje się prosty przykład, który pomoże ci zrozumieć, jak działa matcher not.toBe ().
describe("Different Methods of Expect Block",function () {
it("The Example of not.toBe() method",function () {
expect(true).not.toBe(false);
});
});
Tutaj Jasmine spróbuje dopasować prawdę do fałszu. Ponieważ prawda nie może być tym samym, co fałsz, ten przypadek testowy będzie ważny i przejdzie.