Если я не могу тестировать свой код, значит я его не правильно пишу?
Возникла серьёзная делема.
Клиент захотел на сайт подборщик товаров. На отдельной странице. Расписал как да что должно работать. Работа была проделана, и вроде всё хорошо, но клиент сказал - хочу вот так. И получилось, что эта хотелка не состыковывается с текущей системой и, хоть и немного, но нужно её переделать. Переделали но начали возникать то тут, то там, различные небольшие баги. И вот сейчас клиент сказал еще одну хотелку.
Вообщем я понял, что не плохо бы написать тесты. И тут возникла проблема, что ни серверный ( PHP, CMS ModxRevo ), ни фронт не получается как-то оттестировать.
Запросы от JS обрабатываются в сниппете разными функциями, а как я понял эти функции можно тестировать только в купе с классом ( такое мнение сложилось от первого примера PHPUnit ).
А фронт, тоже самое. Почти все функции требуют присутствия HTML отрендеренного на сервере. И стоит мне поправить верстку на серве, как JS уже не может подхватить нужные классы ( хотя это хоть немного, но решается обязательным присутствием классов типа - .js-* ).
И вот в чем вопрос - если я вижу, что мой код не может быть как-то просто протестирован, значит ли это что я всё пишу не правильно и нужно переписать это?
Можно писать end-to-end тесты на Selenium. Они будут реагировать на изменение классов в стилях. Поскольку доступ к элементам происходит через DOM и CSS селекторы. И на изменения в функционале.
Андрей Сальников: Любой метод класса может быть протестирован. Если он использует сторонние классы, которые никак к вам не относится, почему нельзя использовать заглушки?
Anton: Нет класса. Не знаю знаете ли вы модекс, но я пользуюсь запросами на сервер так - отправляю запрос на страницу. Она запускает PHP когда который switch GET/POST запрос и в зависимости от переданных данных выполняет какое либо действие и возвращает результат. Всё. Никаких классов.
Dark Hole: братец, может, конечно, ты и пишешь клёвый тестируемый код, но, к сожалению, так делают не все. И я не задвигаю про конкретный фреймворк и тд... Но в своей жизни я успел повидать всякого дерьма, в том числе и код на пхп на 2к строк в одном файле. А бывают и больше, а бывает и пара тысяч строк в одной функции, да с сайд-эффектами. Я бы на тебя посмотрел, как ты это тестировать будешь :)