【发布时间】:2015-07-23 22:28:42
【问题描述】:
我正在完成从 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 的
更新:我尝试通过new 使用function 与对象文字语法创建一个新对象,看来__proto__s 是不同的。也许这会影响 Jasmine 的平等比较?
【问题讨论】:
-
你能创建一个新的 CustomCriteria 并通过它吗?
-
既然您的测试范围内拥有所有必要的资源,您不妨检查一下
.toHaveBeenCalledWith(obj)
标签: javascript angularjs testing jasmine