1 回答

TA貢獻1790條經驗 獲得超9個贊
首先加載您的自定義插件,然后添加chai-as-promise
.?與加載插件的順序有關。
來自#installation-and-setup
使用其他 Chai 插件時請注意:Chai as Promised 會在安裝時查找所有當前注冊的斷言器并承諾它們。因此,如果您希望其斷言器被 Promisified,則應在任何其他 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);
? });
});
單元測試結果:
? 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();
添加回答
舉報