如何解决在量角器测试中哪种用法正确?等待或期待someFntoBe ..
对于e2e测试,我将量角器与Jasmine一起使用,并且禁用了Control Flow。我知道量角器使用jasminewd2的茉莉花适配器。而且它增强了期望值,因此它可以在执行断言之前自动取消承诺。因此,以下两个语句具有相同的效果。
expect(await someFn()).toBe..
await expect(someFn()).toBe..
在任何情况下上述陈述的行为都会有所不同吗?推荐的选项是什么?示例规范here遵循第二种方法,即首先等待。这样做有什么好处吗?
[编辑1] 我发现的一个区别是处理Promise拒绝的方式。在两种情况下都可以尝试catch,但是第二个选项允许采用Promise方式捕获。
it('should throw error 1',async () => {
try {
expect(await someFn()).toBe(1);
} catch (err) {
expect(err).toEqual('Unable to calculate');
}
});
it('should throw error 2',async () => {
await expect(someFn()).toBe(1)
.catch((err) => expect(err).toEqual('Unable to calculate'));
});
解决方法
您对jasminewd2的解释是正确的。
我会选择选项1,将await
放在expect()
函数中,因为这有待实际的承诺。
对于包装器,我没有看到任何好处,因为Protractor中的控制流已由async / await代替。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。