问题标签 [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 投票
2 回答
5400 浏览

javascript - 如何使用 Mocha 测试 Promise

我正在使用 Mocha 来测试一个返回承诺的异步函数。

测试承诺解析为正确值的最佳方法是什么?

0 投票
1 回答
4833 浏览

selenium - Chai-As-Promised 正在吃断言错误

我正在使用chai-as-promised + mocha来编写一些selenium-webdriver测试。由于 webdriver 广泛使用promises,我想如果我对这些类型的测试使用 chai-as-promised 会更好。

问题是,当测试失败时,mocha 没有正确捕获错误,它只是失败而没有输出任何东西。

示例代码:

根据记录的行为,当期望失败时, chai-as-promised应该将错误传递给 mocha。正确的?

作为一种变体,

我也试过这些,但无济于事:

#2

#3

#4

0 投票
2 回答
26077 浏览

node.js - 如何对连接到 mongo 的方法进行单元测试,而不实际连接到 mongo?

我正在尝试编写一个测试来测试连接到 mongo 的方法,但我实际上并不想让 mongo 运行并实际连接到它以使我的测试成功通过。

这是我当前的测试,当我的 mongo 守护进程运行时它是成功的。

mongoFactory.getConnection 代码:

0 投票
2 回答
641 浏览

javascript - Chai-as-promised,Promised 数组必须是松散相等的

有没有办法断言承诺数组等于您的黄金标准,减去排序?深度相等失败,因为不能保证排序 - 数组是异步构建的。

据我所知,CaP 不包括“.should.eventually.include.all([])”或类似的东西。我认为我无法检查每个条目,因为那样的话 notify(done) 会被链接到哪里?

0 投票
2 回答
1665 浏览

webdriver - Protractor, Cucumber and chai as promised: When chai assertion fails

I am using protractor to run my cucumber tests. Inside my test I have the following assertion:

When the Assertion is correct there is no problem. However when my labelText is different from arg1 I would like to still keep running it but I don't know how to add the exception or a fail callback in that. At the moment my application just exits. I know that is because I am not using a fail callback (I would like to know where I should have it).

I am also not sure if I should put the callback(); where it is now.

I am looking for solutions online and all I can find are examples using Mocha. I am not using Mocha or Jasmine. I am just using Cucumber framework with protractor. Since Cucumberjs does not have an assertion library, I added chai-as-promised for that. Thanks!

0 投票
3 回答
3786 浏览

jasmine - 量角器与摩卡和柴

我开始使用 Protractor,我尝试做的第一件事是使用 Mocha 和 Chai 而不是 Jasmine。虽然现在我不确定这是否是个好主意。

首先我需要让 Chai 可以从所有规范文件中访问,而不必每次都导入,我发现可以在 protractor.conf 文件中进行操作:

现在在这样的规范中:

为了使它工作,我可以做:

但这很丑,我不想一直把东西包在里面.then。我在想应该有更好的方法(?)

0 投票
1 回答
877 浏览

node.js - chai.assert.isRejected 消息验证器不工作

我正在尝试编写以下测试:

运行此测试时,它是成功的,但是在伪造它以确保它失败并显示以下内容时,它仍然通过:

我还尝试了以下方法:

但它似乎失败了:

AssertionError:预期的承诺将被拒绝并显示 [错误:金额不是有效数字],但它被拒绝并显示 [错误:金额不是有效数字]

我有理由相信它失败了,因为它们引用了不同的错误实例,但不能 100% 确定。

理想情况下,我希望能够确保返回正确的错误/消息,但我似乎无法弄清楚并且正在寻求帮助。

** 注意我也在使用 chai-as-promised

0 投票
1 回答
816 浏览

javascript - 如何使用带 chai-as-promised 的 Protractor 处理一系列承诺

我正在使用ProtractorCucumberJSchai-as-promised(鉴于 CucumberJS 没有内置的断言库)来构建自动化测试套件。

一切都适用于单个断言(使用 chai-as-promised 的expect特性)。但是,当尝试在同一个测试(步骤)中处理多个承诺时,我遇到了麻烦。在以下示例中,verifyUserFirstName 返回一个映射到特定行的 td.getText() 的承诺。

目前,当任何 expect() 行失败时,Protractor 将退出并让浏览器窗口挂起,而不运行其余的测试。

当仅包含一个 expect() 的步骤失败时(请参见下面的示例),一切正常。它被记录为失败的步骤,并且 Protractor 继续运行其余的测试以完成。有没有人经历过这个?

0 投票
0 回答
79 浏览

javascript - 如何断言回调的值最终会发生变化?

我目前正在尝试编写一个测试,断言在我单击一个元素后,另一个元素的值最终会发生变化。我尝试了以下方法:

上述测试失败,因为 stateEc 元素的文本在预期时是“正在进行”。然后我添加了以下内容

测试现在每次都通过 - 问题是我讨厌这个解决方案,并且老实说,我认为 chai-as-promised 的目的是我可以创建必须在特定时间限制内变为真的断言。我究竟做错了什么?

0 投票
3 回答
2783 浏览

jasmine - 如何将量角器中的承诺转换为字符串

我对 Protractor 和 Jasmine 有点陌生,我正在尝试检查我使用 getText() 获取的元素列表是否包含特定元素:

考虑以下元素

现在,由于上面的两个变量都会返回一个承诺,因此通过这样做:

会失败,而且确实会失败。

因此,我相信转换elementToBeSearched成字符串是有益的,会让我的生活更轻松。请就如何将getText()承诺转换为字符串提出解决方案。谢谢