Jasmine hat eingebaute Matcher toBe
und toEqual
. Wenn ich ein Objekt wie dieses habe:
function Money(amount, currency){
this.amount = amount;
this.currency = currency;
this.sum = function (money){
return new Money(200, "USD");
}
}
und versuchen Sie zu vergleichen new Money(200, "USD")
und das Ergebnis der Summe, diese eingebauten Matcher werden nicht wie erwartet funktionieren. Ich habe es geschafft, eine Problemumgehung basierend auf einer benutzerdefinierten equals
Methode und einem benutzerdefinierten Matcher zu implementieren , aber es scheint einfach zu viel Arbeit zu sein.
Was ist die Standardmethode zum Vergleichen von Objekten in Jasmine?
==
und===
völlig falsch ist. Zwei verschiedene Instanzen eines Objekts mit demselben Inhalt geben beide false zurück. Für alle Nicht-Primitiven==
und===
verhalten sich identisch. jsfiddle.net/9mrmyrs6