我有一个方法可以返回一个解析为对象的promise:
{ email: 'an@email.com', otherValue: 'otherValue'}
然后我为它写了一个测试:
test('myFunction should build information correctly', () => {
return expect(myFunction()).resolves.email.toBe('an@email.com');
});
如果我resolves.toBe('an@email')
,我当然会收到错误,因为它不是:
{ email: 'an@email.com', otherValue: 'otherValue'}
但如果我尝试访问电子邮件属性,我会得到:
TypeError: Cannot read property 'toBe' of undefined
我缺少什么?,因为结算不是承诺(它没有当时的方法)。
答案 0 :(得分:2)
使用expect(myFunction()).resolves.toHaveProperty("email", "an@email.com");
因为resolves
不是您的承诺解析值,它是Jest对象。