Мне нравится использовать константные литералы в тестах вместо самих констант.

Конечно, я мог бы использовать строку \Products::SHOPIFY_DIRECT вместо строки shopify_direct, и на первый взгляд в этом нет ничего плохого. На самом деле все в порядке.

Но что, если значение константы случайно изменится?

Тесты подойдут, потому что мы используем ссылку на это значение (я рассматриваю константу как ссылку), но фактическое значение меняется, что может привести к непредсказуемому поведению.

В случае использования константного литерала — тест сломается, а разработчик как минимум будет знать, что что-то пошло не так.