chai-as-promised should.eventually.equal 未通过

chai-as-promised should.eventually.equal not passing

我正在尝试编写 chai-as-promised 的最小工作示例,以便了解它在测试 return 承诺的功能时的工作原理。

我有以下功能:

simple.test = async (input) => {
    return input;
};

和以下测试函数:

chai.use(sinonChai);
chai.use(chaiAsPromised);
const { expect } = chai;
const should = chai.should();

describe('#Test', () => {
    it('test', () => {
        expect(simple.test(1)).should.eventually.equal(1);
    });
});

但是,测试这个结果测试没有通过,而是一个很长的错误,粘贴在这里:https://pastebin.com/fppecStx

问题:代码有什么问题吗,或者这里似乎有什么问题?

首先:您的混合 expectshould。如果你想用should做断言,你不需要expect。

其次:要告诉 mocha 测试是异步的,您必须调用 donereturn 一个 Promise 或使用 async/await.

const chai = require('chai');
const chaiAsPromised = require('chai-as-promised');
const sinonChai = require('sinon-chai');

const should = chai.should();
chai.use(sinonChai);
chai.use(chaiAsPromised);

// Function to test
const simple = {
  test: async (input) => {
    return input;
  }
}

// Test
describe('#Test', () => {
  it('test', () => {
    return simple.test(1).should.eventually.equal(1);
  });
});