Jasmine tem matchers toBe
e toEqual
. Se eu tiver um objeto como este:
function Money(amount, currency){
this.amount = amount;
this.currency = currency;
this.sum = function (money){
return new Money(200, "USD");
}
}
e tente comparar new Money(200, "USD")
e o resultado da soma, esses matchers internos não funcionarão conforme o esperado. Consegui implementar uma solução alternativa com base em um equals
método personalizado e em um matcher personalizado, mas parece funcionar muito.
Qual é a maneira padrão de comparar objetos no Jasmine?
==
e===
está completamente errado. Duas instâncias diferentes de um objeto com o mesmo conteúdo retornarão falso. Para quaisquer não primitivos==
e===
se comportem de forma idêntica. jsfiddle.net/9mrmyrs6