Tôi có một khớp tùy chỉnh trong một số thông số kỹ thuật kiểm tra Jasmine có dạng:Có cách nào để sử dụng các trình so khớp mặc định của Jasmine trong các trình so khớp tùy chỉnh không?
this.addMatchers({
checkContains: function(elem){
var found = false;
$.each(this.actual, function(actualItem){
// Check if these objects contain the same properties.
found = found || actualItem.thing == elem;
});
return found;
}
});
Tất nhiên, actualItem.thing == elem
không thực sự so sánh đối tượng contents- tôi phải sử dụng một trong những giải pháp phức tạp hơn trong Object comparison in JavaScript.
Tôi không thể không thông báo, tuy nhiên, Jasmine đã có một trình kiểm tra đối tượng tốt đẹp: expect(x).toEqual(y). Có cách nào để sử dụng điều đó trong một trình phù hợp tùy chỉnh không? Có cách nào chung để sử dụng các đối sánh trong các đối sánh tùy chỉnh không?
Thật tuyệt vời, cảm ơn! Điều này cũng có thể là một trường hợp mà các giải pháp tôi đang tìm kiếm (một trong những bạn đã cho) là tồi tệ hơn so với vấn đề tôi đã cố gắng để tránh (kiểm tra đối tượng bình đẳng của riêng tôi). Rất mát mẻ, tuy nhiên, mặc dù. – Fishtoaster
Nếu bạn muốn sử dụng đối sánh tùy chỉnh A trong một trình phù hợp tùy chỉnh B khác, bạn có thể thêm logic cho đối sánh A của mình vào mẫu hoa nhài.Env.prototype và sau đó gọi nhật ký đó từ bên trong trình ghép B bằng cách sử dụng jasmine.getEnv () .myMatcherFn(). –