问题标签 [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.
protractor - Cucumber-Protractor 多重期望和通知
我的场景中有一个步骤可以填写多个文本字段并从下拉列表中选择选项。我想断言输入的文本和选择的选项对于每个都是正确的。
我遇到的问题是,如果第一个或第二个期望动作通过,那么任何后续动作都不会被执行,从而导致误报。
理想情况下,我正在寻找一种在没有回调的情况下进行通知的方法,直到最后一次期望。任何人都知道如何做到这一点?
promise - 承诺拒绝失败,chai-as-promised
我使用 chai-as-promised 库和 q 库生成的 promise。这个简单的测试用例应该可以工作(承诺必须被拒绝)还是我误解了承诺功能?
此测试失败并出现错误:测试(我使用实习生作为单元测试库)虽然以下测试通过:
typescript - chai-as-promised 类型与 chai 冲突
我有依赖于chai
和的单元测试chai-as-promised
(一个扩展 Chai 的库,因此您可以轻松测试 Promise)
这个断言:
给我编译错误
当我拥有@types/chai
并@types/chai-as-promised
安装两者时。
当我卸载时@types/chai-as-promised
出现错误
所以显然类型是必要的
这里出了什么问题?chai-as-promised
延伸chai
不良?我应该为它创建自己的类型吗?
node.js - 如何在 promise 中使用 nockback?
我正在尝试使用 nockBack 使用使用 promises 和 chai-as-promised 的代码来自动化我的装置记录/播放。
但我不知道如何使异步 nockBack 与它一起工作。
这会因超时而失败,因为从未调用过回调。
我也试过了const nockBack = Promise.promisifyAll(require('nock').back)
,但它仍然超时。
关于如何将 nockBack 与 promises 和 chai-as-promised 一起使用的任何想法?
javascript - 在 Protactor 中调试测试时是否可以解析和查看 Promise 的结果?
我正在尝试在 CucumberJS/Protractor/Chai-as-promised 堆栈中调试测试。
当我运行测试时,尽管黄瓜规格与屏幕上的表值匹配,但我收到以下错误消息:
AssertionError: expected [ Array(8) ] to deeply equal [ Array(7) ]
我想既然映射器忽略了第一行th
元素,7 应该等于 7,所以我想调试测试。起初我尝试只添加类似then
(因为量角器/ $$返回一个 promise)以输出从 映射的数据,但这并没有产生任何数据。map
tableDataRows.map(...).then(console.error)
.map
element.all
tableDataRows
我尝试then
了一个随机函数,它甚至不使用已解析的输出来查看它是否正在执行,并且它没有 - 所以我认为只是 athen
没有解决承诺。
之后,我尝试在返回上方的 map 函数中放置一条日志行,因为这似乎正在解决,并且有效 - 7 次(这是我期望映射器跳过标题行的结果,但这很令人困惑,因为测试声称数组中有 8 个元素。无论如何..)
所以.to.eventually
in正在以某种方式chai-as-promised
解决承诺(就像文档所说的那样),但我看不到我的.then()
after.map()
函数没有解决任何问题,或者我的任何其他尝试也没有解决承诺。
是否可以在不返回chai.expect
包装用于获取期望数据的承诺的(假定的)承诺的情况下解决承诺?- 我还注意到,如果我没有chai.expect(...).to.eventually.equal(...)
事先返回,任何事情都不会解决。
javascript - 按照承诺使用 Protractor 和 chai 检查元素是否存在
我无法测试我的 node.js 应用程序中是否缺少元素。
我有一个enterBtn
按钮,当点击它时,它会显示resultsTable
和一个clearBtn
. enterBtn
总是存在的。
我正在尝试测试resultsTable
当我单击时消失clearBtn
并且我遇到了麻烦。
我也尝试过这样做:
这也不起作用:
但是,如果我尝试enterBtn
使用下面的代码测试始终存在的 .
我不确定发生了什么...
任何帮助将非常感激!谢谢。
javascript - 使用或不使用通知方法调用 chai-as-promised 有什么区别?
我正在使用chai
并chai-as-promised
测试一些异步 JS 代码。
我只想检查一个返回 promise 的函数最终是否会返回一个 Array 并编写了以下 2 个测试:
答:
乙:
两者都通过 OK,但只有B选项实际运行我的 bar() 函数中包含的完整代码(即显示console.log()
来自下面代码的消息)。难道我做错了什么?为什么呢?
protractor - 即使期望应该失败,Cucumber.js 步骤也已通过
即使期望语句失败,我的 Cucumber 步骤也已通过。在期望语句完成之前似乎正在运行步骤。
如果期望失败,请告诉我如何指示黄瓜步骤失败。
[文件夹结构] 以下是我的 Feature 文件
以下是步骤定义
一切正常如果我写然后步骤如下:
解决方案1:
解决方案2:
我真的很想了解如果我写了为什么它不起作用然后按以下方式进行:
javascript - 带有 Promise 超时的 Mocha 和 Sinon 测试
我有以下代码用于使用 Sinon 和 Mocha 进行的测试。每当我运行这些测试时,我都会得到以下结果
测试一直在通过,直到我开始将 Promise 合并到图片中并使测试更加真实,即设置为处理异步调用。
我做错了什么,如何使测试通过?
测试.js
订单.js
unit-testing - 测试包含异步的 vuex 操作
[这是一个Vue应用,使用Vuex,使用vue-cli创建,使用mocha、chai、karma、sinon]
我正在尝试为我的 vuex 状态创建测试,我不想使用模拟——我对这些测试的一大目标是同时测试数据来自的 API。
我正在尝试遵循 chai-as-promised 的文档。
这是我要测试的 vuex 操作的简化:
请注意,登录操作有两个承诺,并且不返回任何内容。登录操作做了两件事:设置一些状态并更改路由。
我看到的使用 chai-as-promised 的示例期望返回承诺。那是:
但就我而言, login() 不返回任何内容,我不确定如果返回我会返回什么。
这是我到目前为止所拥有的: