问题标签 [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 回答
62 浏览

node.js - 如何在 Chai-as-Promised 中测试属性的非空性

如何测试从已履行的承诺中检索到的对象是否具有非空属性?

我有一个返回类似于以下对象的承诺:

我需要检查该aDate属性是否已设置且非空。aDate如何在不知道其确切值的情况下检查该属性是否存在(最好使用.should.eventually. ...?

0 投票
2 回答
1637 浏览

mocha.js - 如何使用 Webdriver.io 和 Chai 作为 Promised 来验证 css 属性

目前在 Mocha、Chai 和 Chai-as-Promised 中使用 Webdriver.io 但是我在尝试验证 CSS 属性时很难获得验证的承诺:

编码:

但是我收到此错误:

默认按钮:小尺寸 1) 默认情况下应该有方角 1 失败

1)默认按钮:Tiny Size 默认应该有方角:Uncaught AssertionError: expected { Object (property, value, ...) } to deep equal '0px' 0 pass (2s) at assertEqual (/node_modules/chai/lib /chai/core/assertions.js:393:19)

0 投票
1 回答
753 浏览

javascript - 用 chai 和 Promise 捕捉错误

我想知道如何阻止控制台在测试时打印堆栈转储,并承诺抛出错误。

我看到很多类似听起来问题的提及,但不知道如何解决它。有,Bluebird.onPossiblyUnhandledRejection但这只是混乱:

如何通过 Promise 使用 Chai 抛出的错误测试?

编辑我已将其范围缩小到 delay() 调用。删除它使其工作正常。

也许相关:https ://github.com/petkaantonov/bluebird/issues/100

更新问题似乎是因为我使用了delay()as:

代替:

后者最初对我不起作用,这就是我改变它的原因 - 我怀疑这是因为我的 catch 调用是如何设置的。通过改变周围的东西,我能够使用后一种格式:

0 投票
1 回答
441 浏览

javascript - 通过使用 chai-as-promised 的函数调用验证已解决的承诺的内容

我将 chai-as-promised 与 sinonjs 结合使用,但我无法弄清楚如何验证更改的密码。

我有类似以下代码的内容:

哪里u.ChagePassword()返回一个承诺。

我的问题是断言的最后一行 - 我希望能够从存根数据库响应和用户 bcrypt.compareSync() 中提取加密密码以检查它是否是正确的值,但我不清楚如何参考响应中的 encrypted_pa​​ssword 值。

根据文档,该property()调用使该属性成为断言的主题,这就是我尝试使用this但最终导致 bcrypt 抛出“不正确的参数”错误,我认为这是由于this引用引起的。

有人对如何正确执行此操作有建议吗?

注意:我确实打算用检查查询的模拟替换存根。

0 投票
2 回答
919 浏览

protractor - 一个人如何将 Q.all 与 chai-as-promised 一起使用?

chai-as-promised 文档有以下在同一个测试中处理多个 Promise 的示例:

我假设Q这里来自npm install qand var Q = require('q');

从哪里来.should

当我尝试这个时shouldundefined我得到了TypeError: Cannot call method 'notify' of undefined.

Q是否应该先进行一些猴子修补?还是我使用了错误的版本?

我用量角器用黄瓜。据我了解,他们还不支持返回承诺,因此用户必须处理对done.

0 投票
1 回答
202 浏览

javascript - 预期结果在 Chai 中不起作用

我是 JavaScript 中 Promises 的新手,虽然它似乎在某种程度上对我有用,但我无法测试“拒绝”值。

我正在通过一个错误,并希望确保它是一个错误,更重要的是,错误代码与我的期望相匹配。

测试,在 Mocha 中 - 使用 chai 和 chai-as-promised。其他一切都在工作(我有 24 个通过测试)——但这个让我卡住了!

任何帮助将不胜感激。

0 投票
1 回答
878 浏览

selenium - 使用 grunt-webdriver、mocha 和 chai-as-promised 进行功能测试

我正在尝试构建一个功能测试系统来验证我们的网站对我们的用户来说是否正确。我拼凑了一堆 Node.js 模块和帮助程序,试图获得一个框架,该框架提供简单、简洁的测试而没有大量嵌套函数回调,我相信 Promise 可以提供这一点,所以我的package.json文件如下所示:

我的Gruntfile.js样子是这样的:

最后我的测试用例chrome/login.js看起来像这样:

当我grunt webdriver:chrome在命令行上运行时,我看到它启动了 Chrome 并登录到网站。'auth-user-id' 跨度在登录后正确显示用户的 id,但由于某种原因browser.getText()没有返回它,因此测试失败。我尝试在.pause(100)之后添加一个.submitForm(),让我有时间与 Chrome 中的页面进行交互,所以我知道这是测试用例中的一个问题。

我究竟做错了什么?

0 投票
1 回答
1366 浏览

javascript - Deep equal using promises in Chai.js (testing)

I'm using Chai for my test and I want to deep compare the returned object from a promise.

I tried this approach:

But it does not work. I checked many other samples but none of them works. This is what I'm getting:

AssertionError: Unspecified AssertionError

Does anyone experienced something similar?

(By the way, the "object" contains an array of objects...)

0 投票
1 回答
604 浏览

chai - 如何检查 chai-as-promised 中的计数值?

我使用 cucumber 和 chai-as-promised 作为断言库。检查计数值的正确方法是什么。我使用相等,但它仅在将字符串转换为整数后才有效。有没有办法直接断言整数值?

0 投票
0 回答
215 浏览

mocha.js - 当使用 chai-as-promised 时,您可以获得带有失败断言的行号吗?

使用 mocha + chai,当抛出 AssertionError 时,我看到了这个

当使用 chai-as-promised 我看到这个

使用 chai-as-promised 时是否有一种简单的方法来获取行号?

此处的完整复制回购 https://github.com/rissem/chai-as-promised-stack-trace

npm install

npm test