вторник, 17 июня 2008 г.

DUnit

Проводить автоматизированное тестирование собственного программного кода хорошо. Первое case средство, которое бросилось в глаза – утилита DUnit (если верить тому, что написано в About ее идея принадлежит самому Кенту Беку (Kent Beck) [падает ниц и бьет челом]). Тулза изначально на sourceforge обитает, и с некоторых пор включена в комплект поставки с Делфи (надо будет ещё нечто подобное для студии посмотреть). Итак, попробую описать основные принципы работы с DUnit.

Для начала создадим новый проект с помощью Test Project Wizard (File -> Other -> Unit Test -> Test Project). Теперь, когда у нас есть готовый проект для тестирования, нам осталось добавить тестируемые модули (File -> Other -> Unit Test -> Unit Case). В результате работы кодогенератора мы получим шаблон теста для модуля, который нужно подключить к проекту (если пользоваться не делфовской DUnit, а той, которая на sourceforge лежит, то для преобразования кода можно использовать утилитку XPGen из Conrlib).

Запустив тестовый проект на исполнение, увидим дерево тестируемых методов. Для того, чтобы начать тестирование нажмем зелененькую кнопку.


Как видно из рисунка, один из моих методов провалился (деление на ноль однако).

procedure TForm3.btnTest1Click(Sender: TObject);
var
  D1, D2: Double;
begin
  D1 := 0;
  D2 := 1/D1;
  ShowMessage(FloatToStr(D2));
end;
А вот второй метод прошел на ура.
procedure TForm3.btnTest2Click(Sender: TObject);
var
  I1: Integer;
begin
  ShowMessage(IntToStr(I1));
end;

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

Комментариев нет: