» Главная
eXcode.ru » Статьи » PHP » Трюки
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 12



Курсы по электробезопасности

Обучение и аттестация электриков на допуск по электробезопасности. Звоните

dopobraz.com


Обслуживание и ремонт автокранов

Обслуживание и ремонт автокранов

doker-co.com.ua




Ведущий раздела: LedWorm
Описание: Различные хитрости при программировании на PHP



«1» «2» «3» 

TDD: Добавляем отправку письма при создании нового сообщения
Как было указано в новых требованиях, приложение должно оповещать администратора при появлении нового сообщения. Сделать это несложно, вопрос лишь в том, как можно это правильно протестировать? Дело в том, проверить обычными средствами отсылку письма довольно-таки сложная задача. На помощь нам придет пакет FakeMail(http://sourceforge.net/projects/fakemail), находящийся в разработке.


TDD: Дальнейший рефакторинг приложения
Если приглядеться к index.php, то можно заметить, что хотя нам и получилось сделать его более читабельным, однако в коде есть определенные «нехорошие» связи с базой данных, явно требующие инкапсуляции. Неплохо было бы всю функциональность по работе с БД, выделить в отдельную сущность. Прежде чем, мы начнем это делать, добавим модульные тесты в приложение.


TDD: Рефакторинг приложения
Пожалуй, это самый важный первый шаг, который стоит сделать. Для этого несколько модифицируем index.php, выделив из него разметку в отдельный файл /templates/feedback.html.


Tdd: Шаг первый - функциональные тесты
Наша задача - обезопасить функциональность приложения от будущих изменений, то есть мы должны гарантировать, что все наши будущие рефакторинги не приведут к тому, что мы потеряем часть его фукциональности приложения. Для этого существуют функциональные тесты. Для создания функциональных тестов мы будем использовать входящую в SimpleTest подсистему WebTester. Подробную информацию можно получить:


TDD: Начальное состояние проекта
Итак, представим себе ситуацию, что у нас есть некоторое приложение, которое позволяет посетителям web узла, связываться с владельцем ресурса, оставляя сообщения различного характера. Вот список того, что именно наше приложение умеет:


Перевод существующего проекта на TDD
Самым сложным шагом в освоении TDD является, что не удивительно, самый первый. Многие разработчики с радостью мечтают перейти от хаосной разработки к TDD, однако проблема первого шага(а точнее вопрос, «А с чего же собственно начать?») не позволяет им сделать этого.


Написание модульных тестов на PHP при помощи SimpleTest
На самом деле написание тестов нетривиальная задача, для того, чтобы тесты работали как исправный механизм, требуется их автоматизировать. Вам придется прогонять тесты снова и снова не только во время написания тестов для определенного кода, но также и при написании других частей кода, для того чтобы убедиться, что ничего не было сломано. Такой подход называется регрессионным тестированием: всякий раз, когда вы изменяете некоторый код, вы прогоняете весь набор тестов для всего приложения.


TDD: Паттерн ObjectMother для тестового кода
В разделе «Минимизируйте дублирование в тестовом коде» статьи "Создание легкого в поддержке тестового кода" мы уже рекомендовали выносить код, инициализирующий тестируемые и сопутствующие им объекты в отдельные фабричные методы. Разработчики компании Thoughtworks дали этой рекомендации отдельное имя - ObjectMother и описали ее в виде отдельного паттерна.


TDD: Создание легкого в поддержке тестового кода
В проекте, который создается в рамках TDD, отношение продукционного (рабочего) и тестового кода приблизительно равно 1 к 1. Негативным фактором здесь является то, что при изменении функциональности рабочего кода или его активном рефакторинге, приходится изменять также и тестовый код в равной (а иногда и большей) степени. Отсюда появляются различные высказываения «Тесты нас только тормозят! Если бы не эти тесты, мы бы уже давно все сделали!». Поэтому очень важно иметь тестовой код, который является понятным, редко ломается, а также максимально лаконичен, как и продукционный код. Для этого существуют различные методики и специальные рефакторинги, которые для тестового кода имеют немного другой характер, если сравнивать с рефакторингом рабочего кода.


TDD: Рекомендации по написанию хороших тестов
Тесты должны быть прежде всего понятными. Снабжайте тестовые методы именами, которые обясняют суть того, что именно тестируется


«1» «2» «3» 

Имя:

Пароль:



Регистрация

Вы программируйте ради
денег
15% (31)
славы
4% (8)
удовольствия
33% (68)
знаний
20% (40)
просто так
5% (10)
все вместе
23% (47)

Проголосовало: 204
- "Hе" с глаголами пишется вместе или отдельно?
- Через пробел!
Рейтинг: 9.2/10 (22)
Посмотреть все анекдоты