目次
- 目次
- Denoのtestでネストしたテストを書く方法
- --unstableをつけないで実行した場合(Deno v1.17)
- t.stepにはawaitをつける必要がある
- 1.17よりネストしたテストに関する情報がより充実した模様
- Deno 1.18よりネストしたテストを行う際の --unstable フラグが不要になりそう
- 日本語でのDeno1.17リリース内容まとめ(余談)
Denoのtestでネストしたテストを書く方法
Denoのテストでネストしたテストを書く方法は下記のようになる。
Deno.test("nest test sample", async (t) => { await t.step("nest test", () => { // test is here }); });
このようにDeno.test
の中に t.step
を書くことでネストしたテストを書くことが可能。
なお、現在(2021/12/19時点)はまだ安定化していないため、実行には下記のように --unstable
フラグを付ける必要がある。
deno test --unstable
--unstableをつけないで実行した場合(Deno v1.17)
ちなみにこの --unstable
フラグを付けないで実行した場合、下記のようなエラーが出る(V1.17で検証)
error: TS2339 [ERROR]: Property 'step' does not exist on type 'TestContext'.
t.stepにはawaitをつける必要がある
なお、t.step
には await
をつけて実行する必要がある。
例えば下記のように async
と await
をつけない場合はエラーになる。
Deno.test("nest test sample", (t) => { t.step("nest test", () => { // test is here }); });
エラー内容は下記のようになる。
Error: There were still test steps running after the current scope finished execution. Ensure all steps are awaited (ex. `await t.step(...)`).
1.17よりネストしたテストに関する情報がより充実した模様
先日Denoの 1.17
がリリースされたが、このリリースによりネストしたテストのレポートが以前より充実したものになった。
(本当は1.16との比較も残そうと考えたが、そう考えたときには既に deno upgrade
コマンドを叩いてしまっていた。ただ、こちらのポストによると 1.16.2
の時点ですでに入っていたものであるという情報あり。)
Deno 1.18よりネストしたテストを行う際の --unstable
フラグが不要になりそう
また、Denoの 1.18
ではこのテストステップAPIは安定化されるとのことで、以降は --unstable
フラグは不要になるものと思われる。
詳細は下記のリリースノートに記載。
該当箇所はこちら(上記ドキュメント内から引用)
(ネストしたテストのレポート充実化についてもここの文章で触れられている)
Another update is for users using unstable test steps API. The final test report output will now include number of test steps with distinction for passed/ignored/failed steps. The test step API is scheduled to be stabilized in v1.18
個人的にはテストはネストして書きたいので安定化されるのは嬉しい。
追記:Denoの1.18がリリースされ、test steps APIが安定化されました
1.18
がリリースされ、test steps APIが安定化された。
1.18以降は実行時に --unstable
は不要となります。
詳細はリリースノートにて。
https://deno.com/blog/v1.18#stabilization-of-test-steps-api
日本語でのDeno1.17リリース内容まとめ(余談)
ちょっと本題からそれるが、上にも少し書いたとおり先日(2021/12/17)Denoの 1.17
がリリースされた。
1.17
によるリリース内容を日本語でまとめてくださっている下記のポストが分かりやすいので、こちらのブログでもリンクを貼らせていただく。