toEqual
对象时, Header
无法正常工作。
我在以下示例中隔离了问题:
const foo = new Headers();
const bar = new Headers();
bar.append('some', 'value'); // bar is mutated
expect(foo).toEqual(bar); // returns true...
虽然foo
和bar
不同,但规范如何通过?
答案 0 :(得分:0)
您需要通过其键获取特定的标头值。茉莉花可能无法像检查差异所需的那样深入检查。这样可以更好地工作,只需要您创建一个标题对象。
const foo = new Headers();
let newHeaderKey = 'some';
let newHeaderValue = 'value';
foo.append(newHeaderKey , newHeaderValue ); // foo is mutated
expect(bar.headers.get(newHeaderKey )).toEqual(newHeaderValue ); // returns true...
答案 1 :(得分:-1)
为了回答你的问题,jasmine的toEqual
方法检查严格的平等。在JavaScript(和TypeScript)中,如果两个对象是完全相同的对象(该对象的相同实例),则它们只能被视为100%相等。这意味着您只能验证以下内容是否会通过:
expect(foo).toEqual(foo);
这听起来没什么用,但是当你需要知道你拥有你想要的对象的确切实例时,它在大型应用程序中很有用。
关于如何使用jasmine进行测试,您可以测试Headers
对象中的各个标题(例如,您可以验证foo.get('content-type')
是否正确);
expect(foo.get('content-type')).toEqual(bar.get('content-type'));