问题标签 [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.
javascript - 需要帮助了解原生 Promise 与 Blubird 的性能
背景:
- 我正在编写一个流星应用程序,该应用程序最初使用通过 SOAP 请求检索到的数据填充数据库,该请求是通过对某处服务器上的 API 端点发出的请求。
- 初始请求是通过我选择的搜索词进行搜索。我返回一个与我的搜索匹配的记录的 id 列表。
- 然后我发出另一个 API 请求,但这一次,对于我存储到我自己的数据库中的每一个记录(仅选择的值,而不是所有数据)
- 如果我有一个搜索词列表,则对每个搜索词执行上述操作。
- 为了避免“回调地狱”,并且因为我认为这是一个学习新东西的好机会,我选择使用按顺序排列的 Promises:它是这样的:forEach searchTerm -> getTheResults.then.forEachResult->fetchRecord
- 对于 100 左右的短序列,它工作得很好,但是当它达到 1000 时它会挂起。在与 Google 叔叔交谈后,我遇到了一些关于原生 Promise 没有以某种方式优化以及更快的第三方库的话题。所以我决定尝试 Bluebird,但在此之前,我会测试它可能会使事情变得更快的断言。
代码 下面的代码创建了一系列“睡眠承诺”。想法是更换 Bluebird Promise 实现并观察测试运行超过 5000 个 Promises 的时间。
我使用“chai-as-promised”来测试承诺的测试。
在 5000 的 Promise 链上的结果 ,使用 Bluebird 实现的测试完成的速度比 Native 承诺的慢约一秒
我在这里犯了错误还是错过了什么?
reactjs - 量角器:browser.isElementPresent() 给出真假
我正在使用量角器和 Cucumber 来测试 React 项目。在此过程中,我有一些元素将具有可见性:隐藏/可见,我想使用 Protractor 的 isDisplayed 或 isPresent 进行测试。
我写了一个小测试,因为我得到了一些奇怪的输出,它看起来像这样:
这是我使用 browser.isElementPresent 的最后一个版本。我还使用了 inputfelt.isDisplayed 和 inputfelt.isPresent 并且对于这三个测试都通过了。
我看不出它应该如何通过,因为该字段不能既存在又不存在。
我用错了吗?
javascript - 如何用chai断言从promise返回的json?
我正在尝试为从承诺返回的 json 编写测试。我创建了这个简单的代码,以便您可以尝试重现:
但我得到:
chai-as-promised 和 chai-json-equal 单独工作,但不能一起工作。你们有解决方案,解决方法或我可以使用的其他库吗?
javascript - 测试一个由 promise 返回的函数 - 检查错误
我正在测试一个作为承诺的一部分返回的函数。我正在使用chai-as-promised。
我能够测试该功能是否有效,但我无法测试它是否正确抛出错误。
我正在尝试测试的功能,省略了许多与承诺相关的代码:
我的测试:
测试的输出 -
如何测试错误是否正确抛出?我不确定这是摩卡咖啡问题还是承诺的事情或 chai-as-promised 的事情。非常感谢帮助。
chai-as-promised - Chai as Promised:针对特定错误消息的`rejectWith`
我有一个函数可以返回一些可能被拒绝的承诺:
如果返回特定的拒绝消息,我希望 Chai as Promised 仅通过此测试:
我发现两者之间没有区别
和
任何拒绝都将满足这些rejectedWith
测试中的任何一个。
有没有办法指定拒绝主体,所以只有在被拒绝的承诺中返回该主体时测试才会通过?我正在使用 Chai-as-promised 6.0.0。
谢谢
node.js - 期望并且应该使用 Promise 对象而不是解决的结果
我的单元测试有以下设置:
但是当我运行 mocha 时,结果是:
因此,似乎测试是针对 Promise 对象本身而不是针对已解决的结果进行的。
根据chai-as-promised: Installation and Setup设置是正确的。
并且测试的创建方式与chai-as-promised: How to Use中描述的相同。
我已经测试了expect(promise).
和promise.should
语法。有谁知道是什么问题?
使用的节点和模块版本是:
- 节点 v4.6.1
- 柴 3.5.0
- chai-as-promised 6.0.0
- 摩卡3.2.0
angularjs - 在测试中调用 $rootScope 的 $apply/$digest 方法的正确时机
Angular 测试文档显示了一个测试示例,其中 $apply 在测试断言之前被调用。我尝试做同样的事情,但我的测试无法正常工作。第一个应该中断的代码可以工作……看来我的断言没有运行。第二个代码,我的测试有效,但它与文档不同(我更喜欢这种风格)。
第一的:
第二
javascript - 测试调用返回承诺的函数的函数
我有以下形式的代码:
我想测试 sut.methodtotest,但是当我使用 chai、mocha、require、sinon 和 Javascript 社区可以使用的众多其他框架时,我收到一条错误消息:
我的问题是:我如何模拟dependency.methodcall,以便它返回一些模拟数据并且'then'函数可用?
我的测试代码看起来像这样
javascript - Chai-as-promised - 带有 promise 的期望总是转换成一个空对象
来自 chai-as-promised 的文档
但如果我尝试
我得到了这个断言错误:
我用不同的用例和断言尝试了它,但它总是一样的,从中出来expect(promise)
的总是一个空对象。
知道为什么吗?
我用
node.js - 将猫鼬对象与对象进行比较时,摩卡测试挂起
我正在使用mocha
and chai
(with chai-as-promised
) 并且我正在尝试使用mockgoose
.
该模型:
被测代码:
测试代码:
问题是最后一个相等检查挂起摩卡:
当对一个非对象做同样的测试时,
摩卡咖啡只是正常失败。