Jasmine ma wbudowane dopasowujące toBe
i toEqual
. Jeśli mam taki obiekt:
function Money(amount, currency){
this.amount = amount;
this.currency = currency;
this.sum = function (money){
return new Money(200, "USD");
}
}
i spróbuj porównać, new Money(200, "USD")
a wynik sumy, te wbudowane dopasowania nie będą działać zgodnie z oczekiwaniami. Udało mi się zaimplementować obejście oparte na niestandardowej equals
metodzie i niestandardowym dopasowywaniu, ale wydaje się, że wymaga to dużo pracy.
Jaki jest standardowy sposób porównywania obiektów w Jasmine?
==
i===
jest całkowicie błędne. Dwa różne wystąpienia obiektu o tej samej zawartości zwrócą wartość false. Dla wszystkich nieprymitywów==
i===
zachowują się identycznie. jsfiddle.net/9mrmyrs6