2009/05/01

Agile Gathering: TDD by example

Автор: Алексей Кривицкий.

Материлы мастер-класса по Test-Driven Development, который провел Николай Алименков.


Николай:
Как и обещал выкладываю исходники проекта с демонстрации. Так как времени не хватило чтобы осветить все темы, то я решил выложить список вещей, на которые стоит обратить внимание:
  • Unitils автоматически проверяет состояние всех mock объектов после завершения теста и если оно не совпадает с ожидаемым, то тест не проходит
  • Работа с тестовой базой данных имеет очень много рычагов управления. Все скрипты нумеруются и Unitils отслеживает изменения в скриптах чтобы не создавать схему каждый раз. Есть возможность указать элементы базы данных, которые никогда не будут пересозданы. Одна из самых приятных возможностей - автоматическое отключение constraints в базе, что позволяет создавать короткие наборы данных для теста без ненужных зависимостей. Данные могут быть созданы как для тестового класса, так и для каждого теста в отдельности
  • Unitils имеет много утилитных средств для работы с базой данных. К примеру коммит всех накопленных изменений, откат их, получение данных из таблиц и так далее
  • Один из полезных элементов Unitils - это утилиты для работы по reflection. Они позволяют сравнивать коллекции элементов разного типа, сравнивать поля объектов, наборы полей
  • Selenium RC режим имеет специальный класс Wait для тестирования JavaScript и AJAX в том числе. Его применение можно увидеть на примере валидации и автоподсказок
  • Использование mockup очень сильно помогает в написании тестов на Selenium до начала реализации задачи. Я использую Balsamiq для этой цели
  • Рефакторинг тестов очень важен для удобства написания новых, устранения дубликатов и повышения скорости работы. Примером может служить выделение Page Helper классов для Selenium тестов
  • Утилитный класс Clock является хорошим примером устранения недостатков Java в аспекте тестирования
Я постараюсь подготовить полноценный тренинг по TDD на Java к июню и провести его в Киеве. Тренинг будет содержать достаточно развернутый теоретический материал и много практики на всех уровнях. Поэтому есть желание провести данный тренинг в два дня (преанонс тренинга).

Скачать архив материалов.

Если у вас возникли вопросы по моему выступлению или же тестовому приложению - пишите мне, не стесняйтесь: lumii.subscriber(AT)gmail.com

No comments: