Jasmine ha matcher incorporati toBe
e toEqual
. Se ho un oggetto come questo:
function Money(amount, currency){
this.amount = amount;
this.currency = currency;
this.sum = function (money){
return new Money(200, "USD");
}
}
e prova a confrontare new Money(200, "USD")
e il risultato della somma, questi abbinamenti incorporati non funzioneranno come previsto. Sono riuscito a implementare una soluzione basata su un equals
metodo personalizzato e un abbinamento personalizzato, ma sembra che funzioni molto.
Qual è il modo standard per confrontare gli oggetti in Jasmine?
==
ed===
è completamente sbagliato. Due diverse istanze di un oggetto con lo stesso contenuto restituiranno entrambe false. Per tutti i non primitivi==
e si===
comportano in modo identico. jsfiddle.net/9mrmyrs6