На самом деле этот тест тестирует две вещи:
Вызовы кнопок предоставляются обработчиком onClick, если ваш партнер по команде выполнил некоторый рефакторинг в компоненте Button и забыл предоставить функцию onClick для собственного элемента кнопки, этот тест будет потерпеть поражение. Такая проблема будет обнаружена в PR, когда кто-то просматривает изменения или тестирует, но ни одно из этих двух действий не гарантирует вам, что сломанная кнопка не будет появляться в производстве.
Визуализация кнопки, то есть некоторая библиотека, которая Вы используете для стиля, что кнопка сломана, это часто встречается в javascript мире. then/is-promise
1-строчная библиотека с 11+ миллионами использований была сломана сегодня. Поэтому, если вы тестируете код, он будет падать локально или на CI, прежде чем вы его объедините.
Но при мелком рендеринге второй случай здесь не будет работать так, как ожидалось, потому что он не отображает все компоненты в дереве реакции при запуске всех хуков жизненного цикла, это считается плохой практикой в тестировании, Вы можете проверить сообщение по Kent C Dodds Почему я никогда не использую поверхностный рендеринг для получения более подробной информации.
Это важная часть культуры тестирования для проверки всего, код не работает, пока вы не протестируете его, если ваш код прост, тест тоже будет простым. Это хороший код. Если ваш код запутан и сложен, скорее всего, вы вообще не сможете написать тест для своего кода. Вам придется реорганизовать его, чтобы сделать его тестируемым и простым. Похвально, что вы думаете о значении теста, иногда тесты могут быть бесполезны, а ваш пример - нет.