blog.unresolved.xyz

Vitest導入覚書き

Sat Sep 30 2023
  • Next.js
  • Testing

Turborepo環境に配置したNext.jsVitestを入れようとして結構詰まったので色々メモりたい。

Next.js公式のサンプル

公式にもサンプルが配置されてる。

next.js/examples/with-vitest at canary · vercel/next.js

コードを見た限りだとtesting-library/jest-domが有効にされてないように見えるので、matcherが使えない気が?

testing-library/jest-domがVitestをサポート

このPRでサポートされた。

feat!: local types, supporting jest, @jest/globals, vitest by jgoz · Pull Request #511 · testing-library/jest-dom

v6.0.0のリリースに入ったぽいので、比較的最近導入された模様。

Release v6.0.0 · testing-library/jest-dom

これによってこれまでは vitest.setup.ts とかで

1import matchers from '@testing-library/jest-dom/matchers'; 2import { expect } from 'vitest'; 3 4expect.extend(matchers);

とかやってたのが、

1import '@testing-library/jest-dom/vitest'

だけで良くなった。

導入した所感

比較的新しめのライブラリなので、ネット上にある情報がほとんど参考にならなかった。

とはいえJestよりはTSネイティブな感じがあるのと、Viteから派生しただけあってESM標準に作られてるのが良かった。

あと、不要なライブラリをほとんど導入しなくて良いのでJestよりはだいぶスマートな感じ。

とはいえ、JestはNext.jsが公式に next/jest というパッケージでサポートしている(next.js/examples/with-jest)ので、エコシステム的にはJestに軍配が上がるかなという印象。

参考にさせていただきました

Vitest × testing-library雑めも