[英]Jasmine spy expects to be called with "Object(...)"
我正在完成從 Jasmine 1.3 到 2.0 的遷移。 到目前為止,我已經重構了大部分代碼以符合 2.0 的更新語法。 但是,某些類型的測試仍然失敗。
簡而言之,我的測試如下所示:
var obj = new CustomCriteria();
spyOn(my, "function");
my.function(obj);
expect(my.function).toHaveBeenCalledWith({ big: "fat object" });
我的CustomCriteria
類:
var CustomCriteria = function() {
this.big = "fat object";
};
測試失敗,原因如下:
Expected spy function to have been called with [ Object({ big: "fat object" }) ] but actual calls were [ ({ big: "fat object" }) ].
請注意期望如何有一個“ Object
”環繞它,但第二個沒有。 這個測試在 Jasmine < 2.0 中沒有失敗,但在我更新 Jasmine 后現在失敗了。 我怎樣才能解決這個問題?
更新:我修改了通過new
function
與對象字面量語法創建新對象的function
,看起來__proto__
s 是不同的。 也許這會影響茉莉花的平等比較?
var x = {a:1}; var y ={a:1};
x 和 y 將無法在 jasmine 中進行比較(我相信它使用 ===),因為 x 和 y 只是對對象文字的引用。
expect(my.function).toHaveBeenCalledWith(obj)
不會失敗,因為對象引用會匹配。 如果您沒有要比較的確切對象引用,您可以使用 my.function.calls 檢查調用的參數以檢查某些字段的相等性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.