1 回答

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊
首先加載您的自定義插件,然后添加chai-as-promise
.?與加載插件的順序有關(guān)。
來自#installation-and-setup
使用其他 Chai 插件時(shí)請(qǐng)注意:Chai as Promised 會(huì)在安裝時(shí)查找所有當(dāng)前注冊(cè)的斷言器并承諾它們。因此,如果您希望其斷言器被 Promisified,則應(yīng)在任何其他 Chai 插件之后將 Chai 安裝為 Promised last 。
例如
const chai = require('chai');
const chaiAsPromised = require('chai-as-promised');
chai.use(function(chai, utils) {
? var Assertion = chai.Assertion;
? Assertion.addMethod('convertToStringEqual', function(input) {
? ? new Assertion(this._obj.toString()).to.equal(input.toString());
? });
});
chai.use(chaiAsPromised);
chai.should();
describe('65418901', () => {
? it('should pass', () => {
? ? return Promise.resolve(2 + 2).should.eventually.convertToStringEqual(4);
? });
});
單元測試結(jié)果:
? 65418901
? ? ? should pass
? 1 passing (52ms)
但是,像這樣加載插件將不起作用:
chai.use(chaiAsPromised);
chai.use(function(chai, utils) {
? var Assertion = chai.Assertion;
? Assertion.addMethod('convertToStringEqual', function(input) {
? ? new Assertion(this._obj.toString()).to.equal(input.toString());
? });
});
chai.should();
添加回答
舉報(bào)