问题标签 [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 - 如何使用 Mocha 测试 Promise
我正在使用 Mocha 来测试一个返回承诺的异步函数。
测试承诺解析为正确值的最佳方法是什么?
selenium - Chai-As-Promised 正在吃断言错误
我正在使用chai-as-promised + mocha来编写一些selenium-webdriver测试。由于 webdriver 广泛使用promises,我想如果我对这些类型的测试使用 chai-as-promised 会更好。
问题是,当测试失败时,mocha 没有正确捕获错误,它只是失败而没有输出任何东西。
示例代码:
根据记录的行为,当期望失败时, chai-as-promised应该将错误传递给 mocha。正确的?
作为一种变体,
我也试过这些,但无济于事:
#2
#3
#4
node.js - 如何对连接到 mongo 的方法进行单元测试,而不实际连接到 mongo?
我正在尝试编写一个测试来测试连接到 mongo 的方法,但我实际上并不想让 mongo 运行并实际连接到它以使我的测试成功通过。
这是我当前的测试,当我的 mongo 守护进程运行时它是成功的。
mongoFactory.getConnection 代码:
javascript - Chai-as-promised,Promised 数组必须是松散相等的
有没有办法断言承诺数组等于您的黄金标准,减去排序?深度相等失败,因为不能保证排序 - 数组是异步构建的。
据我所知,CaP 不包括“.should.eventually.include.all([])”或类似的东西。我认为我无法检查每个条目,因为那样的话 notify(done) 会被链接到哪里?
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!
jasmine - 量角器与摩卡和柴
我开始使用 Protractor,我尝试做的第一件事是使用 Mocha 和 Chai 而不是 Jasmine。虽然现在我不确定这是否是个好主意。
首先我需要让 Chai 可以从所有规范文件中访问,而不必每次都导入,我发现可以在 protractor.conf 文件中进行操作:
现在在这样的规范中:
为了使它工作,我可以做:
但这很丑,我不想一直把东西包在里面.then
。我在想应该有更好的方法(?)
node.js - chai.assert.isRejected 消息验证器不工作
我正在尝试编写以下测试:
运行此测试时,它是成功的,但是在伪造它以确保它失败并显示以下内容时,它仍然通过:
我还尝试了以下方法:
但它似乎失败了:
AssertionError:预期的承诺将被拒绝并显示 [错误:金额不是有效数字],但它被拒绝并显示 [错误:金额不是有效数字]
我有理由相信它失败了,因为它们引用了不同的错误实例,但不能 100% 确定。
理想情况下,我希望能够确保返回正确的错误/消息,但我似乎无法弄清楚并且正在寻求帮助。
** 注意我也在使用 chai-as-promised
javascript - 如何使用带 chai-as-promised 的 Protractor 处理一系列承诺
我正在使用Protractor和CucumberJS和chai-as-promised(鉴于 CucumberJS 没有内置的断言库)来构建自动化测试套件。
一切都适用于单个断言(使用 chai-as-promised 的expect特性)。但是,当尝试在同一个测试(步骤)中处理多个承诺时,我遇到了麻烦。在以下示例中,verifyUserFirstName 返回一个映射到特定行的 td.getText() 的承诺。
目前,当任何 expect() 行失败时,Protractor 将退出并让浏览器窗口挂起,而不运行其余的测试。
当仅包含一个 expect() 的步骤失败时(请参见下面的示例),一切正常。它被记录为失败的步骤,并且 Protractor 继续运行其余的测试以完成。有没有人经历过这个?
javascript - 如何断言回调的值最终会发生变化?
我目前正在尝试编写一个测试,断言在我单击一个元素后,另一个元素的值最终会发生变化。我尝试了以下方法:
上述测试失败,因为 stateEc 元素的文本在预期时是“正在进行”。然后我添加了以下内容
测试现在每次都通过 - 问题是我讨厌这个解决方案,并且老实说,我认为 chai-as-promised 的目的是我可以创建必须在特定时间限制内变为真的断言。我究竟做错了什么?
jasmine - 如何将量角器中的承诺转换为字符串
我对 Protractor 和 Jasmine 有点陌生,我正在尝试检查我使用 getText() 获取的元素列表是否包含特定元素:
考虑以下元素
现在,由于上面的两个变量都会返回一个承诺,因此通过这样做:
会失败,而且确实会失败。
因此,我相信转换elementToBeSearched
成字符串是有益的,会让我的生活更轻松。请就如何将getText()
承诺转换为字符串提出解决方案。谢谢