3
'does fail'
テストのように約束自体が拒否された場合、期待通りにテストが失敗します。アサーションが失敗した場合/エラーがスローされた場合/ promiseの "then"で約束が拒否された場合、私はERROR: 'Unhandled promise rejection'
というロギングを取得し、テストは成功します。拒絶が処理されなかったことを記録するのではなく、却下で失敗する方法を教えてください。その後、報告アサーション中に約束が拒否されたときにカルマがテストに合格する
import { expect } from 'chai';
describe.only('What?',() => {
const e = new Error('NOPE');
it('does fail',() => Promise.reject(e));
it('should fail when rejected',() => {
const promise = new Promise(r => r());
promise.then(() => Promise.reject(e));
return promise;
});
it('should fail when thrown, then caught then rejected',() => {
const promise = new Promise(r => r());
promise
.then(() => { throw e; })
.catch(() => Promise.reject('huh'));
return promise;
});
it('should fail/reject when thrown, then caught then rethrown',() => {
const promise = new Promise(r => r());
promise
.then(() => { throw e; })
.catch(er => { throw er; });
return promise;
});
it(`doesn't matter if I expect`,() => {
const promise = new Promise(r => r());
promise.then(() => {
expect(1).to.eq(2);
});
return promise;
});
});
...
START:
What?
✖ does fail
✔ should fail when rejected
ERROR: 'Unhandled promise rejection', Error{stack: undefined}
✔ should fail when thrown, then caught then rejected
ERROR: 'Unhandled promise rejection', 'huh'
✔ should fail/reject when thrown, then caught then rethrown
ERROR: 'Unhandled promise rejection', Error{stack: undefined, line: 47567, sourceURL: 'http://localhost:9876/base/test/test_index.js?7f696b0b50c0a51c7a2fa5278582072b20241a3b'}
✔ doesn't matter if I expect
ERROR: 'Unhandled promise rejection', AssertionError{message: 'expected 1 to equal 2', showDiff: true, actual: 1, expected: 2, stack: '[email protected]://localhost:9876/base/test/test_index.js?7f696b0b50c0a51c7a2fa5278582072b20241a3b:39222:25
done()の使用方法はありません – chchrist
はモカまたはジャスミンのコードですか? – chchrist
...と 'expect'。 –