JasmineJS - Controllo dell'uguaglianza

Jasmine fornisce molti metodi che ci aiutano a controllare l'uguaglianza di qualsiasi funzione e file JavaScript. Di seguito sono riportati alcuni esempi per verificare le condizioni di uguaglianza.

ToEqual ()

ToEqual()è il matcher più semplice presente nella libreria incorporata di Jasmine. Corrisponde solo al fatto che il risultato dell'operazione data come argomento a questo metodo corrisponda o meno al risultato.

Il seguente esempio ti aiuterà a capire come funziona questo matcher. Abbiamo due file da testare denominati come“expectexam.js” e un altro attraverso il quale dobbiamo testare è “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);  
   });
});

In caso di corretta esecuzione, queste parti di codice produrranno il seguente output. Ricorda che devi aggiungere questi file nella sezione dell'intestazione dispecRunner.html file come indicato nell'esempio precedente.

not.toEqual ()

not.toEqual() funziona esattamente all'opposto di toEqual (). not.toEqual() viene utilizzato quando è necessario verificare se il valore non corrisponde all'output di alcuna funzione.

Modificheremo l'esempio sopra per mostrare come funziona.

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,  
};

Nel secondo blocco di attesa, stiamo verificando se il valore di currentVal è uguale a 5 poiché il valore di currentVal è zero, quindi il nostro test viene superato e ci fornisce un'uscita verde.

Essere()

toBe()matcher funziona in modo simile a toEqual (), tuttavia sono tecnicamente diversi l'uno dall'altro. toBe () matcher corrisponde al tipo di oggetto mentretoEqual() corrisponde all'equivalenza del risultato.

Il seguente esempio ti aiuterà a capire il principio di funzionamento del matcher toBe (). Questo matcher è esattamente equivalente all'operatore "===" di JavaScript mentre toEqual () è simile all'operatore "==" di 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  
};

Modificheremo leggermente il nostro expectexamFile JavaScript. Abbiamo aggiunto due nuove variabili,name e name1. Si prega di trovare la differenza tra queste due variabili aggiunte: una è di tipo stringa e un'altra non è di tipo stringa.

La seguente schermata è il risultato del nostro test in cui la croce rossa mostra che questi due valori non sono uguali, mentre ci si aspetta che siano uguali. Quindi il nostro test fallisce.

Trasformiamo entrambe le variabili, name e name1 come variabili di tipo String ed eseguire lo stesso SpecRunner.htmlancora. Ora controlla l'output. Dimostrerà che toBe () non solo corrisponde all'equivalenza della variabile, ma corrisponde anche al tipo di dati o al tipo di oggetto della variabile.

non essere()

Come visto in precedenza, not non è altro che una negazione del metodo toBe (). Non riesce quando il risultato previsto corrisponde all'output effettivo della funzione o del file JavaScript.

Di seguito è riportato un semplice esempio che ti aiuterà a capire come funziona il matcher not.toBe ().

describe("Different Methods of Expect Block",function () { 
   it("The Example of not.toBe() method",function () { 
      expect(true).not.toBe(false);    
   });
});

Qui Jasmine cercherà di abbinare il vero con il falso. Poiché vero non può essere uguale a falso, questo test case sarà valido e passerà attraverso.