FrontendJestReact

enzymeのsnapshotがShallowWrapper {}になってたときに見る覚書

Jest + enzymeのsnapshot testing便利ですよね。 ただ、設定によってはちゃんとスナップショットが取れていないケースがある様子です。 最近react-test-rendere中心だったのですが、久 […]

広告ここから
広告ここまで

Jest + enzymeのsnapshot testing便利ですよね。

ただ、設定によってはちゃんとスナップショットが取れていないケースがある様子です。

最近react-test-rendere中心だったのですが、久々にenzyme触ったらハマったので覚書です。

現象

  • 1: enzymeでexpect(shallow(<AnyComponent />)).toMatchSnapshot()でスナップショットを作成する。
  • 2: tests/snapshots/AnyComponent.test.tsx.snapをひらく
  • 3:スナップショットがShallowWrapper {}になっている

何が問題か?

スナップショットとれてません。なのでReactのコードを変更したとしても検知してくれません。

原因

Jestのv24からsnapshot serializerを入れないといけなくなった様子です。

For jest v24 you need to use snapshot serializer like https://github.com/adriantoine/enzyme-to-json

source: https://github.com/facebook/jest/issues/7802

https://stackoverflow.com/a/54552699

対応

シリアライザーをインストールして、Jestで利用するようにしましょう。

$ yarn add -D enzyme-to-json
$ vim package.json
...
  "jest": {
    "snapshotSerializers": [
      "enzyme-to-json/serializer"
    ],
...

これでスナップショットが記録されるようになります。

ブックマークや限定記事(予定)など

WP Kyotoサポーター募集中

WordPressやフロントエンドアプリのホスティング、Algolia・AWSなどのサービス利用料を支援する「WP Kyotoサポーター」を募集しています。
月額または年額の有料プランを契約すると、ブックマーク機能などのサポーター限定機能がご利用いただけます。

14日間のトライアルも用意しておりますので、「このサイトよく見るな」という方はぜひご検討ください。

広告ここから
広告ここまで

Related Category posts