JasmineJS - Verificação de Igualdade

Jasmine fornece muitos métodos que nos ajudam a verificar a igualdade de qualquer função e arquivo JavaScript. A seguir estão alguns exemplos para verificar as condições de igualdade.

ToEqual ()

ToEqual()é o combinador mais simples presente na biblioteca embutida do Jasmine. Apenas corresponde se o resultado da operação dado como argumento para este método coincide com o resultado dela ou não.

O exemplo a seguir ajudará você a entender como esse matcher funciona. Temos dois arquivos a serem testados nomeados como“expectexam.js” e outro através do qual precisamos testar é “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);  
   });
});

Na execução bem-sucedida, esses pedaços de código produzirão a seguinte saída. Lembre-se de que você precisa adicionar esses arquivos à seção de cabeçalho dospecRunner.html arquivo conforme indicado no exemplo anterior.

not.toEqual ()

not.toEqual() funciona exatamente oposto a toEqual (). not.toEqual() é usado quando precisamos verificar se o valor não corresponde à saída de alguma função.

Vamos modificar o exemplo acima para mostrar como isso funciona.

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

No segundo bloco de espera, estamos verificando se o valor do currentVal é igual a 5, pois o valor de currentVal é zero, portanto, nosso teste é aprovado e nos fornece uma saída verde.

Ser estar()

toBe()matcher funciona de maneira semelhante a toEqual (), mas são tecnicamente diferentes um do outro. toBe () matcher corresponde ao tipo do objeto enquantotoEqual() corresponde à equivalência do resultado.

O exemplo a seguir ajudará você a entender o princípio de funcionamento do matcher toBe (). Este matcher é exatamente equivalente ao operador “===” do JavaScript, enquanto toEqual () é semelhante ao operador “==” do 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  
};

Vamos modificar ligeiramente o nosso expectexamArquivo JavaScript. Adicionamos duas novas variáveis,name e name1. Encontre a diferença entre essas duas variáveis ​​adicionadas - uma é do tipo string e outra não é do tipo string.

A captura de tela a seguir é o resultado do nosso teste onde a cruz vermelha mostra que esses dois valores não são iguais, embora se espere que sejam iguais. Portanto, nosso teste falha.

Vamos transformar ambas as variáveis, name e name1 como variáveis ​​do tipo String e executam o mesmo SpecRunner.htmlnovamente. Agora verifique a saída. Isso vai provar que toBe () não só corresponde à equivalência da variável, mas também corresponde ao tipo de dados ou tipo de objeto da variável.

not.toBe ()

Como visto anteriormente, not nada mais é que uma negação do método toBe (). Ele falha quando o resultado esperado corresponde à saída real da função ou arquivo JavaScript.

A seguir está um exemplo simples que o ajudará a entender como o matcher not.toBe () funciona.

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

Aqui, Jasmine tentará combinar o verdadeiro com o falso. Como verdadeiro não pode ser igual a falso, este caso de teste será válido e passará.