这是一个非常基本的问题,但同时在多个帖子中它没有解决方案。如何检查两个对象是否完全相同。 我试过了:
let objectToCopy = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
let copy = {};
Helper.deepCopy(copy, objectToCopy, true, null);
expect(objectToCopy).toEqual(jasmine.objectContaining(copy));//it passes even if copy does contain only some of the objectToCopy fields
然而它非常宽松,如何测试对象是否相等,这意味着它们的所有属性是否相等?
当然我试过了:
expect(objectToCopy).toEqual(copy);
它没有编译:
答案 0 :(得分:1)
objectContaining()
不是用于完全匹配,而是用于非对称匹配。
只需使用:expect(objectToCopy).toEqual(copy)
答案 1 :(得分:1)
所以解决方案是:
expect(copy).toEqual(objectToCopy);
或
expect<any>(objectToCopy).toEqual(copy);
原始方式不起作用,因为TypeScript已使用给定参数的类型对方法进行参数化。