对 Promise 结果运行多个测试 - Mocha

Posted

技术标签:

【中文标题】对 Promise 结果运行多个测试 - Mocha【英文标题】:Running multiple tests on Promise results - Mocha 【发布时间】:2017-07-06 14:34:30 【问题描述】:

我想对从 Promise 调用获得的结果运行一堆测试。我知道可以这样做:

it ('should pass test foo1', () => 
  return promisecall()
    .then(result => 
      expect(result.length).to.equal(42)
      expect(some other test on data)
      expect(some other test on data)
                .
                .
    )
)

据我了解,这样做是: 运行单个测试(即应该通过测试 foo1),仅当所有预期条件都为真时才通过,并且这些预期部分不会显示在输出屏幕中。

如何在单个 promise 结果的结果上添加多个“it”/单元测试,以便不同的测试用例实际显示在输出中?

【问题讨论】:

【参考方案1】:

您应该能够将它们组合在 describe() 中并在 before() 中运行承诺:

describe('things with promises', () => 
    var promiseResult;

    before(() => promiseCall().then(result => promiseResult = result));

    it ('should pass test foo1', () => expect(promiseResult.length).to.equal(42));

    it ('should pass test foo2', () => expect(some other test));

    // ...
);

【讨论】:

以上是关于对 Promise 结果运行多个测试 - Mocha的主要内容,如果未能解决你的问题,请参考以下文章

将Promise.all与easyPost API一起用于多个跟踪状态请求

promise知识

如何使用 Promise.all 使用 jest 为多个提取设置测试

摩卡柴解决多个承诺

用Promise解决多个异步Ajax请求导致的代码嵌套问题

如何使用pg-promise同时从多个查询中获得结果?