Jestのスナップショットテストを避けたほうが良いかもしれないデメリットについて雑メモ。
スナップショットテストはUIの変更を簡単に検知することができる反面、テストの関心事ではないような変更(ex. class名のリネームだけで見た目は変わらない変更)であってもテストがFailしてしまう。
スナップショットテストではtoMatchSnapshot()
というアサーションを使うが、テストがFailしたときに期待する仕様が読み取りづらい。スナップショットの差分を見て判断することになるが、アサーションが端的過ぎて何が正しい状態なのか判断がしづらい。
スナップショットテストは実装が整ってからでないとひたすらコケるだけのテストになってしまうため、実装の完了が前提となってしまう。
Jestのデメリットは日本語記事だとあまり多く語られていないが、以下の記事が良くまとまっており、大変参考となった。
関連書籍