[Node.js] Promise async awaitを使ったテストの書き方

Promiseを使った処理の関数のテストの書き方です。

Promiseに関して詳しく説明している記事は、以下のリンク先にあります。

[Node.js] Promiseの使い方

2018.09.22

 

async awaitに関しては、以下のリンクから。

[Node.js] asyncとawaitの使い方

2018.09.24

Promiseのテストの書き方

以下の処理コードのテストを書いていきたいと思います。

promise.js

 

1.基本的な書き方

間違った例

コメントアウトにも書いていますが、この書き方では非同期処理の実行を待たずにテストが通ってしまうので

どんな値でもテスト成功になってしまいます。

解決策

done()をつけることで、非同期処理、この場合は、promise.asyncAdd()が実行完了までテストが終了しなくなります。

しかし、問題があります。

期待する値が間違っていて、例外が起こった際にきちんとキャッチできません。

 

2.期待する値が違っていた場合

間違った例

解決策1

 

解決策2

 

1と2のどちらの方が良いかはわからないですが、個人的にdoneがまとまっている解決策1の方が好みです。

 

3. done()を使わない書き方

doneを何回も書くのはエラーの元だし、めんどくさいですね。

done()を使わない書き方もあります。

基本的にこの書き方でテストをかけば良いかと思います。

promise.asyncAdd(2, 3)の前に、returnしている。

promiseオブジェクトを返すことで、then()の中で特別な処理なしでテストを通らせることができる。

 

async awaitを使ったテスト

ここまで、長々とPromiseのテストの書き方を書いてきましたが、async awaitを使っているのであれば

圧倒的に簡単にテストコードをかけます。

実際のコード

 

テストコード

 

まとめ

async awaitの使いやすさが、改めて分かりました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA