Jasmine tiene emparejadores incorporados toBey toEqual. Si tengo un objeto como este:
function Money(amount, currency){
this.amount = amount;
this.currency = currency;
this.sum = function (money){
return new Money(200, "USD");
}
}
e intente comparar new Money(200, "USD")y el resultado de la suma, estos comparadores integrados no funcionarán como se esperaba. Me las arreglé para implementar una solución alternativa basada en un equalsmétodo personalizado y un comparador personalizado, pero parece que funciona mucho.
¿Cuál es la forma estándar de comparar objetos en Jasmine?

==y===está completamente equivocado. Dos instancias diferentes de un objeto con el mismo contenido devolverán falso. Para cualquier no primitivo==y se===comporta de manera idéntica. jsfiddle.net/9mrmyrs6==o===, no hay coerción involucrada. Andreas dice que puedes crear un comparador personalizado. La última declaración sobre cómo solucionar este problema es "correcta", pero la explicación en el primer párrafo es simplemente incorrecta.jasminecomprobará el contenido del objeto si lo usa entoBe()lugar deequalsa == bseguirá dando falso siaybson instancias diferentes, es posible que desee editar su respuesta