用async
定義的函數在調用時返回Promise
。 Chai有一個名爲Chai as Promised的插件,您可以使用它來測試您的功能。
安裝柴從npm承諾:
$ npm install chai-as-promised --save-dev
將其插入到柴:
var chai = require('chai');
var chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);
var expect = chai.expect;
然後寫你的異步功能的測試。如果您的測試環境,允許你從測試(如摩卡)返回一個Promise
,那麼這樣做:
const err = new exceptions.InvalidCredentialsError('');
const fn = async function() { throw err; };
return expect(fn()).to.be.rejectedWith(err);
如果您的測試環境不會讓你返回一個Promise
,而是執行此操作:
const err = new exceptions.InvalidCredentialsError('');
const fn = async function() { throw err; };
expect(fn()).to.be.rejectedWith(err).notify(done); // where `done` is the callback
請注意函數的返回值(a Promise
)傳遞給expect()
,而不是函數本身。
你用什麼npm進行測試? – IzumiSy