问题标签 [chai-as-promised]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
protractor - 如何在 Chai Protractor Promise 中处理布尔值
我试图验证 chai 承诺中的布尔值,如下所示,
但我收到以下错误:
谁能帮助我如何使用 chai promise 验证布尔值。
javascript - 如何使用rejectWith 来执行错误消息的完全匹配?
我最近拿起了 JS 单元测试库 Mocha、Chai 和 Chai-As-Promise。但是,我遇到了一种情况,我不确定这是默认行为还是我错过了。
当我断言从承诺中拒绝的错误消息时,似乎只要预期的错误消息是实际错误消息的子字符串,它的断言就会通过。下面是一个例子:
这是默认行为吗?如果是,是否有强制错误消息完全匹配的选项?
mocha@3.4.2 chai@4.0.2 chai-as-promised@7.1.1 q@1.5.0
非常感谢。
node.js - 使用 Mocha / Chai 和 async/await 验证是否引发了异常
我正在努力寻找在使用 async/await 时验证承诺在 Mocha 测试中被拒绝的最佳方法。
这是一个有效的示例,但我不喜欢它should.be.rejectedWith
返回一个需要从测试函数返回才能正确评估的承诺。使用 async/await 消除了对测试值的这种要求(就像我对下面的结果所做的wins()
那样),我觉得我很可能会在某些时候忘记 return 语句,在这种情况下测试总是会通过。
感觉应该可以使用 async/await 将拒绝转换为异常并将其与 Chai 的 should.throw 相结合的事实,但我无法确定正确的语法。
理想情况下,这会起作用,但似乎不起作用:
angular - Chai 正如承诺的那样,最终在针对 Angular 应用程序的 Protractor e2e 测试中等待的时间不够长
我正在为我最新的 Angular 4 应用程序使用 Protractor 和 Chai-as-promised。我现在只有 2 个 e2e 测试。一个登录现有用户,另一个注册新用户。如果注册成功,我的注册逻辑也会登录新创建的用户。
这是html代码:
这是 e2e 测试代码:
如您所见,两个测试非常相似。但是,signup/logout
失败了expect(element(by.id('logoutLink')).isPresent()).to.eventually.be.true;
,这也存在于login/logout
测试中,它成功了。
我错过了什么?感觉根本不用等。但它适用于login/logout
(意味着测试成功)。
对 API 的登录和注册请求都需要大约 200 毫秒才能完成。需要注意的是,当用户提交注册表单时,它会首先触发对 api 的注册请求,如果成功,则会触发登录请求。所以大约需要 400 毫秒才能完成。我猜,这超出了eventually
轮询/等待的范围。
编辑:expect(...).to.eventually
上面的代码中缺少一些,我已修复。作为仅供参考,这是断言失败:
感觉就像是在元素实际出现在 dom 中并且断言失败之前,promise 解决了。而不是再次轮询它,直到它为真或超时。
编辑#2:刚刚尝试了完全相同的代码,但是在执行最后两行之前等待了 5 秒,它成功通过了......
因此,绝对expect(element(by.id('logoutLink')).isPresent()).to.eventually.be.true;
承诺解决快速错误并通过测试。我该如何解决?
任何帮助将不胜感激。
javascript - 在多个属性对象上按承诺检查 chai
您好,我有一个方法可以将数据与 URL 一起返回,因此返回对象具有 url 和 body 作为两个属性。
我应该如何在 Chai 中测试这个 - 正如所承诺的那样
它适用于 1 个属性。
如果我包含其他属性,它会在以前的属性中搜索。
AssertionError:预期“ http://www.jsondiff.com/ ”具有属性“body”
我哪里错了?
chai - chai 作为 promise 调用函数一次
我怎么能用 chai-as-promised 做到这一点:
目前我正在使用柴期望:
对于 chai-as-promisied,我可以拨打多个电话,但我想拨打一次:
解决方案:
es6-promise - 柴如承诺的测试拒绝超时
我应该如何测试拒绝:
在我的测试中:
它应该被拒绝错误“无效密码”,但我得到错误:
mocha.js - Sinon 检查是否使用 promise 调用了对象的其他方法
我有一个令人困惑的不工作测试,我无法以某种方式解决(我来自 Java 背景,所以如果我的术语中有一些错误,我很抱歉)。
有一个Trigger
具有一些公共功能的对象类,foo()
并且bar()
. 逻辑是:
可以foo()
直接调用另一个对象,或者如果bar()
被调用(使用数组),则Trigger.bar()
调用Trigger.foo()
array.length次。
触发器是用 bluebird Promises 实现的。这是 Trigger 的基本摘录(我删除了一些逻辑,这似乎有点多余,但实际上发生的更多):
所以可以看到,它bar()
调用foo()
了 members 数组中的每个成员。
我想编写一个测试,在其中监视触发器对象并检查它是否调用了foo()
n 次。
所以我目前所做的(更改了函数名称)我只是在检查它是否被调用:
由于 Trigger 的承诺,这显然不起作用,因此告诉我:
AssertionError: expected foo to have been called at least once, but it was never called
但是无论我如何尝试在then() 块中解决这个问题bar()
,它总是声称我的间谍没有被调用。
我已经做了一些日志记录,并且确信它foo()
被调用了。关于我做错了什么的任何想法?
问候,
vegaaa
sequelize.js - 创建行但承诺不解决
使用 seqalizerjs,解决一个承诺:
以 chai 作为承诺进行测试
但我总是得到这个: