Мне нравится использовать константные литералы в тестах вместо самих констант.
Конечно, я мог бы использовать строку \Products::SHOPIFY_DIRECT
вместо строки shopify_direct
, и на первый взгляд в этом нет ничего плохого. На самом деле все в порядке.
Но что, если значение константы случайно изменится?
Тесты подойдут, потому что мы используем ссылку на это значение (я рассматриваю константу как ссылку), но фактическое значение меняется, что может привести к непредсказуемому поведению.
В случае использования константного литерала — тест сломается, а разработчик как минимум будет знать, что что-то пошло не так.