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"
        ],
    ...

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

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark