• В чем суть автотестов с PHPUnit на примере формы?

    больше нет смысла писать тест с вводом одинарной кавычки в текст комментария, т.к. мы уже и так знаем, что будет сделано экранирование и ошибки не будет.

    Тесты часто пишутся до кода и являются прекрасной возможностью продумать граничные случаи заранее. Когда вы пишете код, вы думаете об "удачной" ветке выполнения - как сделать, чтобы функционал заработал. Когда вы пишете тесты, вы наоборот идёте по "пессимистичной" ветке - что может пойти не так во время выполнения? В первом случае легко что-то забыть, потому что голова уже занята деталями реализации.

    Кроме того, если писать сначала тесты, а потом код, будет улучшаться архитектура (в теории, разумеется). Покрывать тестами код с кривой архитектурой очень-очень больно, поэтому из чистой лени вы будете стараться следовать всяким SOLID'ам, KISS'ам, YAGNI и прочим акронимам.

    Вдобавок, код постоянно меняется и вы в процессе рефакторинга вполне можете сломать экранирование и узнать об этом, когда всю вашу базу уведут через инъекцию.

    Это, что касается тестов в целом. Конкретно пример из вопроса лишён смысла, поскольку а) нет никакого смысла писать свой слой работы с БД, когда есть много готовых удобных и протестированных инструментов и б) то, что вы описали, не юнит-тест (ну или как минимум несколько юнит-тестов).
    Ответ написан
    6 комментариев