Код и не должен под них писаться. А вот гибкость какая-никакая должна быть. Вот возьмём простой заезженный пример:
Код в комментариях не нуждается. И так очевидно, какой подход лучше. Если пейсатель не задумывался над тем, что может понадобиться подменить реализацию, то при написании тестов уж точно понадобится внедрить мок. И если этот пейсатель пишет тесты, то считай, что некоторые проблемы он уже избежал. Возможно притянуто за уши и вообще я херню сморозил, но я не знаю как еще можно наглядно объяснить то, что я хотел сказать в том посте.
При условии, что система спроектирована грамотно и замОчить объекты не составляет никакого труда.Мне кажется неприятным подход, при котором код пишется под тесты.
Screamer, я же любитель гг
Koenig, Мугога. Скажи это разработчикам крупных проектов. Без тестирования там никуда. Кстати в похапе есть для этого соответствующие инструменты. Например Behat и Codeception. От последнего я был просто в восторге. Есть интеграция с кучей фреймворков и библиотек. К примеру, когда тестируешь что-то через selenium, оно даже скриншот провалившегося теста делает. Это же вообще круто. Гг.
полезно, но для пхп обычно все сводится к echo print_r var_dump
Naik, интерфейс можно тестировать. В стандартном пакете есть нагрузочное тестирование интерфейсов, MonkeyTest кажется. Проверяет отзывчивость тыкая кучу раз в секунду по экрану и нажимая разные клавиши. Есть ещё сторонние разработки, там реальное тестирование - пишешь скрипты, мол в это поле введи 1234, потом нажми Меню, выбери пункт и сравни результат с TextView с id таким-то с ожидаемым значением и оно автоматически делает. Изм. aNNiMON (21.12 / 20:34) (2)
vl@volk, до меня только дошло Просто я думал, как мне помогут тесты в приложении на андроид например.. А их удобно использовать разве что для проверки текстовых или числовых данных. Интерфейс то никак автоматически не потестируешь
Naik, ну да, об этом в начале статьи написано.
Кажется понял для чего нужно использовать тесты. Для проверки результатов работы программы, которая получает что-то на вход и мы заранее знаем что она должна вернуть. Это заменяет постоянное ручное тестирование. Но в данной статье показано что-то очень сильно напоминающее обычный дебаг.
Screamer, особой разницы я между юнит-тестированием и функциональным не замечал, для меня самое главное - это сценарии теста придумать. А так да, на практике у нас получалось мало юнит-тестов (для нескольких нетривиальных функций-хелперов), в основном тесты были интеграционные, функциональные и, чуть меньше, системные. Java Категории |