【Jasmine】Promiseのテスト方法
概要
Jasmine
でのPromise
をテスト時にはテスト定義の引数にdone
を利用します。
done
を利用することで、非同期処理完了後まで待機してくれます。
done
を設定しない場合は、Promise.then
内の処理をスルーしてテストを終了するため、正常なテスト結果がでない場合があります。
動作環境
- TypeScript 2.7.2
- Jasmine 2.8.0
サンプルソース
it ('Promise Test 1', (done: DoneFn) => { // setup const func = new Promise<string>((resolve, reject) => { setTimeout(() => { resolve('ok'); }, 500); }); // exercise func.then(data => { // verify expect(data).toBe('ok'); // 完了待機 done(); }); });
注意事項
長い非同期処理については jasmine.DEFAULT_TIMEOUT_INTERVAL
を利用してタイムアウト値を調整して下さい。