Snapshot testing does not work in practice

An opinion piece and case study

Snapshot testing is great on paper. In my experience, it does not work as great in practice. The goal of snapshot testing is to prove that your logic changes did not cause output side effects, typically to the UI. When I add a feature, my existing features shouldn’t break. When I optimize or refactor, my UI shouldn’t become inaccessible. That’s great!

In practice, UI changes so frequently that developers habitually update snapshots without considering if they need to be or even