如何将 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 一起使用? 的相关文章

随机推荐

  • 实体框架硬级联删除

    我有一个与实体框架映射的 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