0
エラーをスロー非同期機能のためのテストを書きますか?この作品
const err = new exceptions.InvalidCredentialsError('');
const fn = async function() { throw err; };
expect(fn).to.throw(err);
上記は機能しません。
エラーをスロー非同期機能のためのテストを書きますか?この作品
const err = new exceptions.InvalidCredentialsError('');
const fn = async function() { throw err; };
expect(fn).to.throw(err);
上記は機能しません。
async
で定義された関数は、呼び出されるとPromise
を返します。あなたの機能をテストするために使用できる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
を返すために、その後、次の操作を行います。テスト環境は、あなたがPromise
を返させていない場合は
const err = new exceptions.InvalidCredentialsError('');
const fn = async function() { throw err; };
return expect(fn()).to.be.rejectedWith(err);
、代わりにこれを行う:
const err = new exceptions.InvalidCredentialsError('');
const fn = async function() { throw err; };
expect(fn()).to.be.rejectedWith(err).notify(done); // where `done` is the callback
関数の戻り値(Promise
)は、関数自体ではなくexpect()
に渡されることに注意してください。
whats npmあなたはテストに使用していますか? – IzumiSy