2

我正在尝试编写 chai-as-promised 的最小工作示例,以了解它在测试返回承诺的函数时是如何工作的。

我有以下功能:

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

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

4

1 回答 1

3

第一:你的混音expectshould。如果要使用 should 进行断言,则不需要 expect。

第二:要告诉 mocha 测试是异步的,您必须调用donereturnPromise 或使用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);
  });
});
于 2018-03-18T22:18:46.293 回答