Jasmine có các trình kết hợp tích hợp toBevà toEqual. Nếu tôi có một đối tượng như thế này:
function Money(amount, currency){
this.amount = amount;
this.currency = currency;
this.sum = function (money){
return new Money(200, "USD");
}
}
và cố gắng so sánh new Money(200, "USD")và kết quả của tổng, những đối sánh tích hợp sẵn này sẽ không hoạt động như mong đợi. Tôi đã quản lý để triển khai một công việc xung quanh dựa trên một equalsphương pháp tùy chỉnh và trình đối sánh tùy chỉnh, nhưng nó dường như hoạt động nhiều.
Cách chuẩn để so sánh các đối tượng trong Jasmine là gì?
==và===là hoàn toàn sai. Hai trường hợp khác nhau của một đối tượng có cùng nội dung sẽ trả về false. Đối với bất kỳ hành vi không phải nguyên thủy nào==và===hoạt động giống hệt nhau. jsfiddle.net/9mrmyrs6