问题标签 [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.

0 投票
0 回答
183 浏览

javascript - 需要帮助了解原生 Promise 与 Blubird 的性能

背景

  1. 我正在编写一个流星应用程序,该应用程序最初使用通过 SOAP 请求检索到的数据填充数据库,该请求是通过对某处服务器上的 API 端点发出的请求。
  2. 初始请求是通过我选择的搜索词进行搜索。我返回一个与我的搜索匹配的记录的 id 列表。
  3. 然后我发出另一个 API 请求,但这一次,对于我存储到我自己的数据库中的每一个记录(仅选择的值,而不是所有数据)
  4. 如果我有一个搜索词列表,则对每个搜索词执行上述操作。
  5. 为了避免“回调地狱”,并且因为我认为这是一个学习新东西的好机会,我选择使用按顺序排列的 Promises:它是这样的:forEach searchTerm -> getTheResults.then.forEachResult->fetchRecord
  6. 对于 100 左右的短序列,它工作得很好,但是当它达到 1000 时它会挂起。在与 Google 叔叔交谈后,我遇到了一些关于原生 Promise 没有以某种方式优化以及更快的第三方库的话题。所以我决定尝试 Bluebird,但在此之前,我会测试它可能会使事情变得更快的断言。

代码 下面的代码创建了一系列“睡眠承诺”。想法是更换 Bluebird Promise 实现并观察测试运行超过 5000 个 Promises 的时间。

我使用“chai-as-promised”来测试承诺的测试

在 5000 的 Promise 链上的结果 ,使用 Bluebird 实现的测试完成的速度比 Native 承诺的慢约一秒

我在这里犯了错误还是错过了什么?

0 投票
2 回答
494 浏览

reactjs - 量角器:browser.isElementPresent() 给出真假

我正在使用量角器和 Cucumber 来测试 React 项目。在此过程中,我有一些元素将具有可见性:隐藏/可见,我想使用 Protractor 的 isDisplayed 或 isPresent 进行测试。

我写了一个小测试,因为我得到了一些奇怪的输出,它看起来像这样:

这是我使用 browser.isElementPresent 的最后一个版本。我还使用了 inputfelt.isDisplayed 和 inputfelt.isPresent 并且对于这三个测试都通过了。

我看不出它应该如何通过,因为该字段不能既存在又不存在。

我用错了吗?

0 投票
1 回答
2026 浏览

javascript - 如何用chai断言从promise返回的json?

我正在尝试为从承诺返回的 json 编写测试。我创建了这个简单的代码,以便您可以尝试重现:

但我得到:

chai-as-promised 和 chai-json-equal 单独工作,但不能一起工作。你们有解决方案,解决方法或我可以使用的其他库吗?

0 投票
1 回答
47 浏览

javascript - 测试一个由 promise 返回的函数 - 检查错误

我正在测试一个作为承诺的一部分返回的函数。我正在使用chai-as-promised

我能够测试该功能是否有效,但我无法测试它是否正确抛出错误。

我正在尝试测试的功能,省略了许多与承诺相关的代码:

我的测试:

测试的输出 -

如何测试错误是否正确抛出?我不确定这是摩卡咖啡问题还是承诺的事情或 chai-as-promised 的事情。非常感谢帮助。

0 投票
0 回答
141 浏览

chai-as-promised - Chai as Promised:针对特定错误消息的`rejectWith`

我有一个函数可以返回一些可能被拒绝的承诺:

如果返回特定的拒绝消息,我希望 Chai as Promised 仅通过此测试:

我发现两者之间没有区别

任何拒绝都将满足这些rejectedWith测试中的任何一个。

有没有办法指定拒绝主体,所以只有在被拒绝的承诺中返回该主体时测试才会通过?我正在使用 Chai-as-promised 6.0.0。
谢谢

0 投票
1 回答
334 浏览

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
0 投票
1 回答
87 浏览

angularjs - 在测试中调用 $rootScope 的 $apply/$digest 方法的正确时机

Angular 测试文档显示了一个测试示例,其中 $apply 在测试断言之前被调用。我尝试做同样的事情,但我的测试无法正常工作。第一个应该中断的代码可以工作……看来我的断言没有运行。第二个代码,我的测试有效,但它与文档不同(我更喜欢这种风格)。

第一的:

第二

0 投票
2 回答
1111 浏览

javascript - 测试调用返回承诺的函数的函数

我有以下形式的代码:

我想测试 sut.methodtotest,但是当我使用 chai、mocha、require、sinon 和 Javascript 社区可以使用的众多其他框架时,我收到一条错误消息:

我的问题是:我如何模拟dependency.methodcall,以便它返回一些模拟数据并且'then'函数可用?

我的测试代码看起来像这样

0 投票
1 回答
1459 浏览

javascript - Chai-as-promised - 带有 promise 的期望总是转换成一个空对象

来自 chai-as-promised 的文档

但如果我尝试

我得到了这个断言错误:

我用不同的用例和断言尝试了它,但它总是一样的,从中出来expect(promise)的总是一个空对象。

知道为什么吗?

我用

0 投票
1 回答
467 浏览

node.js - 将猫鼬对象与对象进行比较时,摩卡测试挂起

我正在使用mochaand chai(with chai-as-promised) 并且我正在尝试使用mockgoose.

该模型:

被测代码:

测试代码:

问题是最后一个相等检查挂起摩卡:

当对一个非对象做同样的测试时,

摩卡咖啡只是正常失败。