Тестирование.Выполнение.Тестирующие методы
Как уже говорилось, тестирующие методы класса могут содержать любой код. Например, тестирование можно проводить, используя вызовы Assert().

Однако удобнее для этого пользоваться специально разработанными методами класса tests. Каждый из этих методов сравнивает два значения. Если значения отличаются, в файл error.txt будет сохранена соответствующая информация и тест будет помечен как непройденный.

В класс включены методы для сравнения основных типов:

pascal
 class function Tests.Test(N1, N2:integer; Msg:String = ''):boolean; overload;
 class function Tests.Test(N1, N2:int64; Msg:String = ''):boolean; overload;
 class function Tests.Test(N1, N2:extended; Msg:String = ''):boolean; overload;
 class function Tests.Test(D1, D2:TDateTime; Msg:String = ''):boolean; overload;
 class function Tests.Test(S1, S2:String; Msg:String = ''):boolean; overload;
 class function Tests.Test(P1, P2:Pointer; Msg:String = ''):boolean; overload;

Первые два параметра - сравниваемые значения. Первым значением лучше указывать полученное, а вторым - требуемое.

Обратите внимание, что тип Double (=TDateTime) используется для сравнения дат. Для сравнения чисел с плавающе запятой нужно использовать значения extended.

Необязательная строка Msg выводится в файл, если сравнение неуспешно. По этому значению можно легко найти тест, который не выполнился.

Для значения boolean во втором параметре нет необходимости, поэтому сигнатура метода отличается от остальных:

pascal
 class function Tests.Test(B:boolean; Msg:String = ''):boolean; overload;

Существуют методы для сравнения некоторых сложных структур: списков строк

pascal
 class function Tests.Test(L1, L2:TStrings; Msg:String = ''):boolean;

Все такие методы возвращают true, если проверка прошла успешно.

Пример:

pascal
// тестируемый метод - должен возвращать test string
function TMyClass.method1 : String;
begin
   result := 'test string';
end;

// тестирующий метод
procedure TMyClass.test_method1;
begin
   tests.test(method1,         // вызов метода
             'test string',    // должно получиться такое значение
             'test_method1'    // информация для поиска
            );

Для побайтного сравнения файлов можно вызвать CompareFiles.

pascal
 class function TTests.CompareFiles(F1, F2:String; Msg:String = ''):boolean;


Copyright © 2009-2014 by