Jestのスナップショットテストのデメリット

アプリケーション

Jestのスナップショットテストを避けたほうが良いかもしれないデメリットについて雑メモ。

デメリット

テストが脆くなってしまう

スナップショットテストはUIの変更を簡単に検知することができる反面、テストの関心事ではないような変更(ex. class名のリネームだけで見た目は変わらない変更)であってもテストがFailしてしまう。

アサーションの期待が不明確

スナップショットテストではtoMatchSnapshot() というアサーションを使うが、テストがFailしたときに期待する仕様が読み取りづらい。スナップショットの差分を見て判断することになるが、アサーションが端的過ぎて何が正しい状態なのか判断がしづらい。

テストを書くタイミングが遅くなってしまう

スナップショットテストは実装が整ってからでないとひたすらコケるだけのテストになってしまうため、実装の完了が前提となってしまう。

参考

Jestのデメリットは日本語記事だとあまり多く語られていないが、以下の記事が良くまとまっており、大変参考となった。


関連書籍