開発覚書はてな版

個人的な開発関連の備忘録

【Jasmine】テストを失敗させる

概要

Jasmineで特定ケースの場合、テストを失敗させたい場合はfailメソッドまたはdone.failを使用します。
PromiseRxJS等でrejectthrowErrorを発生させるテストの場合、正常に動作してしまう場合がテスト失敗なため、failメソッド等で明示してあげるとテスト失敗が分かりやすいです。

動作環境

  • TypeScript 2.7.2
  • Jasmine 2.8.0

サンプルソース

    it ('Promise Test 2', (done: DoneFn) => {
        // setup
        const func = new Promise<string>((resolve, reject) => {
            setTimeout(() => {
                reject('error');
            }, 500);
        });

        // exercise
        func.then(data => {
            // thenの場合はテスト失敗
            done.fail('エラーが発生しませんでした。');
            // fail('エラーが発生しませんでした。');
        }).catch(err => {
            // verify
            expect(err).toBe('error');

            // 完了待機
            done();
        });
    });

参考URL

以前に書いたJasmine関連の記事

kakkoyakakko2.hatenablog.com