Tôi mới bắt đầu sử dụng Jasmine vì vậy hãy tha thứ cho câu hỏi newbie nhưng có thể kiểm tra các loại đối tượng khi sử dụng toHaveBeenCalledWith
không?Sử dụng các loại đối tượng với phương thức Jasmine's toHaveBeenCalledWith
expect(object.method).toHaveBeenCalledWith(instanceof String);
Tôi biết tôi có thể làm điều này nhưng nó kiểm tra giá trị trả lại thay vì đối số.
expect(k instanceof namespace.Klass).toBeTruthy();
Andreas, là có bất kỳ lý do bạn thêm '.toBeTruthy() '? Có vẻ như không cần thiết. – gwg
@gwg 'mong đợi (foo)' mà không có đối sánh là một no-op; dòng sẽ không làm gì nếu không có cuộc gọi 'toBeTruthy()'. Xem http://jsfiddle.net/2doafezv/2/ để lấy bằng chứng. –
Đây là lỗi thời; 'obj.method.mostRecentCall' cần trở thành [' obj.method.calls.mostRecent() '] (http://jasmine.github.io/2.0/introduction.html#section-Other_tracking_properties) trong Jasmine 2.0. Ngoài ra, sử dụng 'jasmine.any()', như được mô tả trong câu trả lời khác, rõ ràng hơn và dễ thương hơn. Cuối cùng, câu trả lời này mất một thời gian để đạt được điểm; về cơ bản tất cả mọi thứ bạn đã viết bên cạnh 'mong đợi (obj.method.mostRecentCall.args [0] instanceof String) .toBeTruthy();' không thực sự cần thiết để tự giải thích. –