Jest 27新機能確認

2022/02/01に公開

いまさらだが、Jest 27の新機能の確認する。

重要な変更はブログでアナウンスされている。
https://jestjs.io/blog/2021/05/25/jest-27
日本語で整理された記事も以下にある。
https://zenn.dev/sosukesuzuki/articles/560c751e62a515

ところが、GitHubのReleaseを確認するとめちゃくちゃある。
https://github.com/facebook/jest/releases/tag/v27.0.0

といってもESMサポート関連がかなり多い。

jest-eachの強化

紹介されてなさそうなものとしては、jest-eachの強化である。

https://github.com/facebook/jest/pull/11388
https://github.com/facebook/jest/pull/10763

describe.eachtest.eachを利用時にタイトルとして使う文字列内でプロパティを展開できるようになっている。

test.each([{ name: "a" }, { name: "b"}])("test $#: $name", () => {
  // ...
})

のようなテストがあった場合、titleに入っている$#は配列のindexが補間され、$nameにはnameプロパティの内容が補間されて、test 1: atest 2: bというタイトルのテストになる。

個人的には以前から欲しかった機能で、とても重宝している。

パフォーマンス

https://github.com/facebook/jest/pull/10901
jestのruntimeがもっているキャッシュをspecファイルを変換するjest transform内で共有できるようになっているので、不要なIOが削減されていそうである。

まとめ

いっぱい変更があったので、眺めてみたが多くは、記事かかれている内容に関するものであった。しかし、紹介されていないものがあるので興味があればみてみると良さそうです。

Discussion