メインコンテンツへスキップ
バージョン: 次へ

v28からv29への移行

非公式ベータ版翻訳

このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →

Jestをv28からv29にアップグレードしますか?このガイドは設定とテストのリファクタリングを支援します。

情報

全変更リストは変更履歴をご覧ください。

メモ

古いバージョンからアップグレードしますか?v27からv28への移行ガイドはこちらで確認できます。

互換性

サポート対象のNodeバージョンは14.15、16.10、18.0以降です。

スナップショット形式

Jest 28ブログ記事で発表された通り、Jest 29ではデフォルトのスナップショットフォーマットが{escapeString: false, printBasicPrototype: false}に変更されました。

以前の動作を維持したい場合、snapshotFormatプロパティを以下のように設定できます:

+ snapshotFormat: {
+ escapeString: true,
+ printBasicPrototype: true
+ }

JSDOMのアップグレード

jest-environment-jsdomjsdomをv19からv20にアップグレードしました。

情報

jest-environment-jsdomを使用する場合、TypeScriptの最低要件バージョンは4.5に設定されます。

特筆すべきは、jsdom@20crypto.getRandomValues()をサポートしたことです。これにより、Jest@28で正常に動作しなかったuuidnanoidなどのパッケージが、追加のポリフィルなしで動作可能になります。

pretty-format

ConvertAnsiプラグインがpretty-formatパッケージから削除され、代わりにjest-serializer-ansi-escapesが推奨されます。

jest-mock

jest-mockパッケージのMocked*ユーティリティ型のエクスポートが変更されました。MaybeMockedDeepMaybeMockedはそれぞれMockedMockedShallowとしてエクスポートされるようになり、MockedClassMockedFunctionMockedObjectのディープモックバリアントのみが公開されます。

TypeScript

非公式ベータ版翻訳

このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →

情報

このページのTypeScriptの例は、JestのAPIを明示的にインポートした場合にのみ、ドキュメント通りに動作します:

import {expect, jest, test} from '@jest/globals';

TypeScriptでJestを設定する方法の詳細については、はじめにガイドを参照してください。

jest.mocked()

jest.mocked()ヘルパーメソッドは、渡されたオブジェクトのディープメンバーの型をデフォルトでラップするようになりました。第2引数にtrueを指定して使用していた場合は、型エラーを避けるためにこれを削除してください:

- const mockedObject = jest.mocked(someObject, true);
+ const mockedObject = jest.mocked(someObject);

従来のシャローモックの動作を維持したい場合は、第2引数に{shallow: true}を渡してください:

- const mockedObject = jest.mocked(someObject);
+ const mockedObject = jest.mocked(someObject, {shallow: true});