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á.