Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гафаров_Отчет.doc
Скачиваний:
7
Добавлен:
11.03.2015
Размер:
1.09 Mб
Скачать

4 Результаты тестирования

Для проведения тестирования реализуем метод, задающий тестовые параметры, вызывающий метод CheckContact, анализирующий код возврата работы функции, и протоколирующий результаты выполнения тестов. Ниже приведен исходный код из модуля тестирования, относящийся к проверке методаCheckContact.

type

TTestSet = record

InputParams: TBallMovementParams;

InputBall: TBall;

SurfacePoint: TPoint;

ExpectedResult: Integer;

end;

const

TestData: array[0..5] of TTestSet = (

(InputParams : (PreviousPoint:(X: 20));

InputBall:(X: 20; Radius: 20); ExpectedResult: 1),

(InputParams : (PreviousPoint:(X: 580));

InputBall:(X: 581; Radius: 20); ExpectedResult: 2),

(InputParams : (PreviousPoint:(X: 300; Y:460));

InputBall:(X: 300; Y: 461; Radius: 20); ExpectedResult: 3),

(InputParams : (PreviousPoint:(X: 300; Y:21));

InputBall:(X: 300; Y: 20; Radius: 20); ExpectedResult: 4),

(InputParams : (PreviousPoint:(X: 300; Y:41));

InputBall:(X: 300; Y: 40; Radius: 20); SurfacePoint: (X: 300; Y: 20);

ExpectedResult: 5),

(InputParams : (PreviousPoint:(X: 300; Y:20));

InputBall:(X: 300; Y: 40; Radius: 20); SurfacePoint: (X: 300; Y: 20);

ExpectedResult: 0));

procedure CheckContactTest;

const

WINDOW_WIDTH = 600;

WINDOW_HEIGHT = 480;

LOG_NAME = 'CheckContactLog.txt';

RESULT_FORMAT = 'Result = %d and Expected result = %d => Test %s' + sLineBreak;

SUCCEED_RESULT = 'Succeed';

FAILED_RESULT = 'Failed';

var

I: Integer;

LogStream: TStringStream;

SaveStream: TFileStream;

CallResult: Integer;

begin

LogStream := TStringStream.Create('');

try

Restart(WINDOW_WIDTH, WINDOW_HEIGHT, True, True);

for I := 0 to Length(TestData) - 1 do

begin

MovementParams.PreviousPoint := TestData[I].InputParams.PreviousPoint;

BallVariable.X := TestData[I].InputBall.X;

BallVariable.Y := TestData[I].InputBall.Y;

SetLength(Surface, 0);

SetLength(Surface, 1);

Surface[0] := TestData[I].SurfacePoint;

CallResult := CheckContact;

if CallResult = TestData[I].ExpectedResult then

LogStream.WriteString(Format(RESULT_FORMAT,

[CallResult, TestData[I].ExpectedResult, SUCCEED_RESULT]))

else

LogStream.WriteString(Format(RESULT_FORMAT,

[CallResult, TestData[I].ExpectedResult, FAILED_RESULT]));

end;

finally

SaveStream := TFileStream.Create(LOG_NAME, fmCreate);

try

LogStream.Position := 0;

SaveStream.CopyFrom(LogStream, LogStream.Size);

finally

SaveStream.Free;

end;

LogStream.Free;

end;

end;

В результате работы тестового метода в файле протокола находятся следующие результаты.

Result = 1 and Expected result = 1 => Test Succeed

Result = 2 and Expected result = 2 => Test Succeed

Result = 3 and Expected result = 3 => Test Succeed

Result = 4 and Expected result = 4 => Test Succeed

Result = 5 and Expected result = 5 => Test Succeed

Result = 0 and Expected result = 0 => Test Succeed

Полученные результаты говорят о верности работы метода CheckContact.