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

2024-01-06

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

it("should all be well", function (done) {
    Q.all([
        promiseA.should.become("happy"),
        promiseB.should.eventually.have.property("fun times"),
        promiseC.should.be.rejectedWith(TypeError, "only joyful types are allowed")
    ]).should.notify(done);
});

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

哪里有.should来自?

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

有没有一些猴子补丁Q这应该首先发生吗?或者我使用了错误版本的东西?

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


回答我自己的问题:

.should来自“应该”断言风格 -http://chaijs.com/guide/styles/#should http://chaijs.com/guide/styles/#should。你需要运行:

chai.should();

after var Q = require('q');但之前Q.all([]).should.notify...:

var Q = require('q');
var chai = require('chai');
var chaiAsPromised = require('chai-as-promised');

// ***************
chai.should();
// ***************

chai.use(chaiAsPromised);

it("should all be well", function (done) {
    Q.all([
        promiseA.should.become("happy"),
        promiseB.should.eventually.have.property("fun times"),
        promiseC.should.be.rejectedWith(TypeError, "only joyful types are allowed")
    ]).should.notify(done);
});

根据文档:

这会将单个承诺断言的任何失败传递给测试框架

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Q.all 与 chai-as-promised 一起使用? 的相关文章

  • 将 browser.element 获取到具有子项的页面对象中

    当我派生一个驱动程序实例以在浏览器之间发送消息时 我正在进行测试 我还使用页面对象来映射视图 在我的页面对象中 我有其他页面对象 其中一些对象继承自另一个页面对象 但是 当我分叉了一个驱动程序实例并有两个浏览器可以使用时 获取element
  • Promise 链与 Promise.all

    我的任务是使用量角器输入通知日期 我需要在输入之前清除内容 所以我想出了这个代码 this Then I should enter Notification Date gt const d new Date return orderChec
  • Protractor - 无效的 SSL 证书

    我们有一个应用程序 在本地测试它会显示无效的 SSL 证书警告 通常我会添加一个例外并继续它 但是量角器有办法忽略这一点吗 我在 selenium 中看到了一些可以忽略 SSL 的功能 但在 Protractor 中似乎找不到任何功能 这对
  • NodeJS My SQL 查询与 Chain Promise

    我有3个函数 我想逐步调用这个函数 例如当我调用第一个函数并获取结果时 我必须调用第二个函数并传递从第一次调用返回的参数 在完成第二个调用后 我必须调用第三个函数并传递从第二个函数返回的参数 1 getCategory function b
  • protractor 2.5.4 E/launcher - 会话未创建:此版本的 ChromeDriver 仅支持 Chrome 版本 79

    我进行了大量研究并使用了各个论坛中提到的许多可能的解决方案 但没有一个对我有用 我试图在 CI CD 管道中运行它 尽管能够在本地运行量角器测试用例并能够启动浏览器 但在 CI CD 管道构建中它失败了 详细信息如下 我在 package
  • 如何使用Nodejs从上传的ppt文件中获取幻灯片数量?

    我们可以从文件的属性中看到文件详细信息 如下图所示 我需要使用 Nodejs 或 Angularjs 以编程方式获得相同的细节 我不认为 Angularjs 可以完成文件操作 是否可以在节点中获取文件的相同信息 我猜 shellsjs 会支
  • Protractor - 检查单选按钮是否被选中

    所以我遇到了这个问题 我运行量角器 硒测试 有时在测试过程中已经检查了单选按钮 有时则没有 etc div class radio item checked or div class radio item 您可以在其中看到该类有时具有 检查
  • 你能避免与 Promise 完全嵌套吗? [复制]

    这个问题在这里已经有答案了 据我了解 Promise 的主要卖点之一是能够编写扁平代码 或者 比回调地狱更扁平 尽管在很多情况下我们似乎需要嵌套 Promise 才能使用闭包 例如 来自q https www npmjs org packa
  • 无法聚焦 Web 元素来发送密钥

    我有一组测试 需要登录然后执行搜索 我的应用程序是 Angular JS 我正在起诉 Protractor 事实上 我的测试工作正常 直到我收到我的应用程序的新套件 并且此时我的所有测试都失败了 element by id mainGlob
  • 如何允许或阻止 Headless chrome 上的通知警报

    我正在运行我的量角器测试headlesschrome 我不确定无头chrome是否会弹出通知警报 如果弹出 如何允许和阻止它们 对于非无头 Chrome 我添加了此中给出的解决方法post https github com angular
  • 用法:java cucumber.api.cli.Main [选项] [ [FILE|DIR][:LINE[:LINE]*] ]+

    我在运行功能文件时收到此错误 Usage java cucumber options FILE DIR LINE LINE Options g glue PATH Where glue code step definitions and h
  • 包含任何文本的元素的量角器预期条件

    有没有办法检查元素中是否有任何文本 我已经找到了textToBePresentInElement但此函数会检查指定值 如果失败则不会返回正确的错误 我通过 API 填充该元素 并且稍后加载它 因此我希望浏览器等到元素中出现任何信息 然后检查
  • 如何在量角器中重新运行失败的黄瓜场景?

    作为测试的一部分 我使用打字稿语言来开发与量角器兼容的代码 我使用 BDD 框架 其中我在 config ts 中定义了一些黄瓜选项 如下所示 capabilities specs example feature cucumberOpts
  • 茉莉花量角器打字稿在其块中发生预期故障后继续执行

    我正在使用 Protractor jasmine 框架和打字稿 所以我在describe中有多个it块 所以在每个it块内有很多方法或期望条件我正在验证 因此 当前当其中一个期望失败时 整个块就会终止 所以即使在一步失败后我也想继续执行 下
  • 在 Protractor 中定位父元素的推荐方法

    根据最新公布的时尚指南 https github com angular protractor blob master docs style guide md never use xpath 使用by xpath 定位器被认为是一种不好的做
  • Protractor/Jasmine 条件测试用例

    与此问题相关 如何使用 Protractor 创建条件测试用例 https stackoverflow com questions 36701985 how can i create conditional test cases using
  • 根据 getText() 的文本从 Protractor 中的 ElementArrayFinder 获取特定元素

    我正在尝试根据所需元素的文本从 ElementArrayFinder 获取特定的 ElementFinder 例如 假设我有 Angular2 应用程序提供的以下 HTML 片段 ul li span Adam span span clas
  • Protractor 中 element(...) 和 element(...).getWebElement() 之间的区别

    为什么我们需要element getWebElement over element 当两者的工作原理完全相同时 为什么两个 API 具有相同的功能 Protractor是一个方便的包装WebDriverJS javascript 硒绑定 e
  • 如何在 Angular2 中实现间隔/轮询以与量角器一起使用?

    我有一个 angular2 应用程序 我想用量角器进行测试 在此应用程序中 我有一个带有图表的页面 该页面正在使用自动生成的数据定期更新 显然 Protractor 的一项功能是在执行测试代码之前等待脚本和 http 调用完成 但是 如果有
  • Angular JS,量角器定位器,获取元素的直接子元素

    我有一个网格 我想从中选择所有行 但不选择行内的任何元素 这些行只是 div 没有类等 类似这样 为简洁起见 删除了内部内容 div class grid div div div div div div div div div div di

随机推荐

  • 实体框架硬级联删除

    我有一个与实体框架映射的 SQLite DB 有 2 个表 集合 1 n 专辑 当我删除收藏集时 所有相关相册也必须被删除 我用CollectionRepo Delete collection 为了实现这一点 它使用以下代码 public
  • JavaScript 错误显示“confirm 不是函数”

    当我提交表单时 我将 jQuery 与验证插件一起使用 frmProject visible validate errorContainer site details visible messageBox1 errorLabelContai
  • 如何检查 Windows 程序的 C++ 文件是否存在?

    这是仅适用于 Windows 的程序 因此可移植代码不是问题 我只需要 bool DoesFileExist LPWSTR lpszFilename 根据陈雷蒙德先生的说法 你应该如果您迷信 请使用 GetFileAttributes ht
  • Sitecore 管道上传处理器

    我正在使用 UploadProcessor 阻止特定文件上传到 MediaLibrary 一切正常 我可以看到 Sitecore 的警报消息 但是 Sitecore 的错误消息并不真正用户友好 无法上传一个或多个文件 请参阅日志文件了解更多
  • 在 Java 中捕获 Scala 中抛出的异常 - 无法访问的 catch 块

    Scala 没有 https softwareengineering stackexchange com q 177806检查异常 然而 当从 java 调用 scala 代码时 需要捕获 scala 抛出的异常 Scala def f d
  • Request::createFromGlobals() 与 $this->getRequest()

    我见过两种在控制器中获取 Request 对象的方法 request Request createFromGlobals request this gt getRequest 我想知道有什么区别 一种方法比另一种方法更好吗 还有更多方法可以
  • 关键字“SELECT”附近的语法不正确。 ')' 附近的语法不正确

    我使用了vb net中的sql代码 SELECT Table1 Query amel code Table1 Query kala code Sum Table1 Query SumOfqty AS SumOfSumOfqty FROM S
  • C# - 常量值“4294901760”无法转换为“int”

    问候 我不敢相信我问了这么一个基本的问题 但这没有意义 所以就在这里 在 Windows Phone 7 net 上的 C 中 我尝试在类中定义一个常量 如下所示 error CS0266 Cannot implicitly convert
  • JS 函数的原型属性有什么用?

    我通过以下方式了解 javascript 原型继承 proto 财产 但是我注意到当我这样做时var f function f 现在将有一个prototype财产除了 proto 财产 看来prototype不参与财产连锁 到底是什么doe
  • “无法删除数据库,因为它当前正在使用”。怎么修?

    有了这个简单的代码 我在运行它时得到 无法删除数据库 test db 因为它当前正在使用 CleanUp 方法 TestFixture public class ClientRepositoryTest private const stri
  • 测试 API 调用不会在 Cypress 中发生

    我在我的应用程序中实现了 API 数据缓存 这样如果数据已经存在 就不会重新获取 我可以拦截初始获取 cy intercept api things as api cy visit things cy wait api passes 为了测
  • 根据另一列的条件提取值

    case number lt c 1 1 2 2 2 3 3 type lt c STD STD2 STD STD3 STD2 STD STD2 date lt as Date c 2008 11 1 2009 3 25 2010 3 14
  • WPF RichTextBox 附加彩色文本

    我正在使用RichTextBox AppendText函数将字符串添加到我的RichTextBox 我想用特定的颜色设置它 我怎样才能做到这一点 试试这个 TextRange tr new TextRange rtb Document Co
  • 如何判断今天的日期是否在另外 2 个日期之间?

    我不太能得到正确的语法 我只需要一个 IF 语句来检查今天是否在一组日期之间 如果是 则回显 这个应该怎么调整呢 now time Y m d date september 2014 09 01 date october 2014 10 0
  • 使用非官方镜像的 Docker 安全问题

    如何确保 docker 容器的安全 尤其是在使用第三方容器或基础镜像时 使用基础映像时 它可能会启动任何服务或在后台挂载主机文件系统的任意分区 并可能向攻击者发送敏感数据 这是否正确 因此 如果我使用第三方容器 Dockerfile 证明该
  • WebDriverException:未知错误:尝试启动 Chrome 浏览器时 DevToolsActivePort 文件不存在

    我尝试使用 URL 启动 chrome 浏览器启动后什么也不做 1 分钟后我看到以下错误 Unable to open browser with url https www google com Root cause org openqa
  • Android 远程视频与 Titanium

    大家好 我正在尝试在 Android 手机上播放我们的网络服务器上托管的视频 我已经为 iPhone 构建了这个 并且效果很好 然而 Droid 是一个不同的问题 我没有看到视频 只是看到黑屏 没有错误或任何东西 我正在使用的代码是 act
  • Windows 10 开发者模式

    我有 Windows 10 Pro 从 Windows 8 1 Pro WMC 升级 我看到 不使用开发人员功能 选项呈灰色 禁用 无法选择 并且选择了 旁加载应用程序 选项 为什么我不能选择 不使用开发者功能 我怎样才能启用它 这主要是由
  • Postgresql 上 Bytea 数据类型的唯一约束

    我将图像存储在 Postgresql 的 Bytea 数据类型上 我确实知道不建议这样做 但我确实认为组织图像的好处超过了我使用的缺点 我面临的问题是我想确保只插入唯一的图像 但是当我创建唯一的约束时 出现以下错误 错误 索引行需要 281
  • 如何将 Q.all 与 chai-as-promised 一起使用?

    chai as promised 文档有以下在同一测试中处理多个 Promise 的示例 it should all be well function done Q all promiseA should become happy prom