2016-08-30 3 views
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 
+0

done()の使用方法はありません – chchrist

+0

はモカまたはジャスミンのコードですか? – chchrist

+1

...と 'expect'。 –

答えて

3

あなたはthen(...)の戻り値は、作成していない最初の約束を返すことがあります。

関連する問題