помогите с Dunit
От: Аноним  
Дата: 31.01.06 11:24
Оценка:
Люди добрый я начинающая тестировщица, у меня проблема с модульным тестированием. А именно с Dunit (Delphi)!
помогите разобраться , если можете то по полочкам, а то была на основном сайте DUnit , мало что поняла !!
Re: помогите с Dunit
От: rlabs Россия  
Дата: 31.01.06 11:34
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Люди добрый я начинающая тестировщица, у меня проблема с модульным тестированием. А именно с Dunit (Delphi)!

А>помогите разобраться , если можете то по полочкам, а то была на основном сайте DUnit , мало что поняла !!

Посмотрите на верхней полке.
Alex Nikulin
Yota Lab
Re[2]: помогите с Dunit
От: TestGirl  
Дата: 31.01.06 11:38
Оценка: :)
Здравствуйте, rlabs, Вы писали:

R>Здравствуйте, Аноним, Вы писали:


А>>Люди добрый я начинающая тестировщица, у меня проблема с модульным тестированием. А именно с Dunit (Delphi)!

А>>помогите разобраться , если можете то по полочкам, а то была на основном сайте DUnit , мало что поняла !!

R>Посмотрите на верхней полке.



Извините , но не поняла, где это на верхней полке?
Re: помогите с Dunit
От: &reY Украина http://www.livejournal.com/~1000turov/
Дата: 31.01.06 12:09
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Люди добрый я начинающая тестировщица, у меня проблема с модульным тестированием. А именно с Dunit (Delphi)!

А>помогите разобраться , если можете то по полочкам, а то была на основном сайте DUnit , мало что поняла !!

основная идея:
пишется и регистрируется класс с published процедурами внутри которых выполняются различные проверки (например ожидаемого и получаемого результатов) через процедуры framework'а DUnit (Check*)

пример:

unit tuDateUtils;

interface

uses
  TestFramework,
  ixDateUtils;

const
  STestSuiteName = 'ixRTL.ixDateUtils';

type
  TTestDateUtils = class(TTestCase)
  published
    procedure TestStartOfTheQuarter;
    procedure TestEndOfTheQuarter;
    procedure TestConvertSecondsTextToTimeText;
    procedure TestConvertSecondsTextToTimeTextWithDay;
  end;

implementation

uses
  SysUtils;

{ TTestDateUtils }

procedure TTestDateUtils.TestConvertSecondsTextToTimeText;
begin
  CheckEquals('', ConvertSecondsTextToTimeText(''));
  CheckEquals('-1', ConvertSecondsTextToTimeText('-1'));
  CheckEquals('00:00:00', ConvertSecondsTextToTimeText('0'));
  CheckEquals('00:00:10', ConvertSecondsTextToTimeText('10'));
  CheckEquals('00:01:00', ConvertSecondsTextToTimeText('60'));
  CheckEquals('00:02:00', ConvertSecondsTextToTimeText('120'));
  CheckEquals('00:10:00', ConvertSecondsTextToTimeText('600'));
  CheckEquals('01:00:00', ConvertSecondsTextToTimeText('3600'));
  CheckEquals('01:11:57', ConvertSecondsTextToTimeText('4317'));
end;

procedure TTestDateUtils.TestConvertSecondsTextToTimeTextWithDay;
begin
  CheckEquals('', ConvertSecondsTextToTimeTextWithDay(''));
  CheckEquals('-1', ConvertSecondsTextToTimeTextWithDay('-1'));
  CheckEquals('00:00:00', ConvertSecondsTextToTimeTextWithDay('0'));
//  CheckEquals('00:00', ConvertSecondsTextToTimeTextWithDay('0'));
  CheckEquals('00:00:10', ConvertSecondsTextToTimeTextWithDay('10'));
  CheckEquals('00:01:00', ConvertSecondsTextToTimeTextWithDay('60'));
  CheckEquals('00:02:00', ConvertSecondsTextToTimeTextWithDay('120'));
  CheckEquals('00:10:00', ConvertSecondsTextToTimeTextWithDay('600'));
  CheckEquals('01:00:00', ConvertSecondsTextToTimeTextWithDay('3600'));
  CheckEquals('01:11:57', ConvertSecondsTextToTimeTextWithDay('4317'));
end;

procedure TTestDateUtils.TestEndOfTheQuarter;
begin
  CheckEquals(StrToDateTime('28.02.2003 23:59:59'), EndOfTheQuarter(StrToDateTime('01.01.2003')), 0.001, '01.01.2003');
  CheckEquals(StrToDateTime('28.02.2003 23:59:59'), EndOfTheQuarter(StrToDateTime('01.02.2003')), 0.001, '01.02.2003');
  CheckEquals(StrToDateTime('31.05.2003 23:59:59'), EndOfTheQuarter(StrToDateTime('05.03.2003')), 0.001, '05.03.2003');
  CheckEquals(StrToDateTime('31.05.2003 23:59:59'), EndOfTheQuarter(StrToDateTime('25.04.2003')), 0.001, '25.04.2003');
  CheckEquals(StrToDateTime('31.05.2003 23:59:59'), EndOfTheQuarter(StrToDateTime('25.05.2003')), 0.001, '25.05.2003');
  CheckEquals(StrToDateTime('31.08.2003 23:59:59'), EndOfTheQuarter(StrToDateTime('15.06.2003')), 0.001, '15.06.2003');
  CheckEquals(StrToDateTime('31.08.2003 23:59:59'), EndOfTheQuarter(StrToDateTime('12.07.2003')), 0.001, '12.07.2003');
  CheckEquals(StrToDateTime('31.08.2003 23:59:59'), EndOfTheQuarter(StrToDateTime('12.08.2003')), 0.001, '12.08.2003');
  CheckEquals(StrToDateTime('30.11.2003 23:59:59'), EndOfTheQuarter(StrToDateTime('12.09.2003')), 0.001, '12.09.2003');
  CheckEquals(StrToDateTime('30.11.2003 23:59:59'), EndOfTheQuarter(StrToDateTime('12.09.2003')), 0.001, '12.09.2003');
  CheckEquals(StrToDateTime('30.11.2003 23:59:59'), EndOfTheQuarter(StrToDateTime('12.10.2003')), 0.001, '12.10.2003');
  CheckEquals(StrToDateTime('30.11.2003 23:59:59'), EndOfTheQuarter(StrToDateTime('12.11.2003')), 0.001, '12.11.2003');
  CheckEquals(StrToDateTime('29.02.2004 23:59:59'), EndOfTheQuarter(StrToDateTime('12.12.2003')), 0.001, '12.12.2003');
end;

procedure TTestDateUtils.TestStartOfTheQuarter;
begin
  CheckEquals(StrToDateTime('01.12.2002'), StartOfTheQuarter(StrToDateTime('01.01.2003')), 0.001, '01.01.2003');
  CheckEquals(StrToDateTime('01.12.2002'), StartOfTheQuarter(StrToDateTime('01.02.2003')), 0.001, '01.02.2003');
  CheckEquals(StrToDateTime('01.03.2003'), StartOfTheQuarter(StrToDateTime('05.03.2003')), 0.001, '05.03.2003');
  CheckEquals(StrToDateTime('01.03.2003'), StartOfTheQuarter(StrToDateTime('25.04.2003')), 0.001, '25.04.2003');
  CheckEquals(StrToDateTime('01.03.2003'), StartOfTheQuarter(StrToDateTime('25.05.2003')), 0.001, '25.05.2003');
  CheckEquals(StrToDateTime('01.06.2003'), StartOfTheQuarter(StrToDateTime('15.06.2003')), 0.001, '15.06.2003');
  CheckEquals(StrToDateTime('01.06.2003'), StartOfTheQuarter(StrToDateTime('12.07.2003')), 0.001, '12.07.2003');
  CheckEquals(StrToDateTime('01.06.2003'), StartOfTheQuarter(StrToDateTime('12.08.2003')), 0.001, '12.08.2003');
  CheckEquals(StrToDateTime('01.09.2003'), StartOfTheQuarter(StrToDateTime('12.09.2003')), 0.001, '12.09.2003');
  CheckEquals(StrToDateTime('01.09.2003'), StartOfTheQuarter(StrToDateTime('12.09.2003')), 0.001, '12.09.2003');
  CheckEquals(StrToDateTime('01.09.2003'), StartOfTheQuarter(StrToDateTime('12.10.2003')), 0.001, '12.10.2003');
  CheckEquals(StrToDateTime('01.09.2003'), StartOfTheQuarter(StrToDateTime('12.11.2003')), 0.001, '12.11.2003');
  CheckEquals(StrToDateTime('01.12.2003'), StartOfTheQuarter(StrToDateTime('12.12.2003')), 0.001, '12.12.2003');
end;

initialization
  RegisterTests(STestSuiteName, [
    TTestDateUtils.Suite
  ]);

end.
Re[2]: помогите с Dunit
От: TestGirl  
Дата: 31.01.06 12:21
Оценка:
Мне немного не понятно , какой именно код программы вы проверяете, что он выполняет, и если можно то совсем с самого начало прям с запуска у меня Delphi 6 , я ещё не совсем разабралась как запускать оттуда dunit с кодом который я хочу оттестить
Re[3]: помогите с Dunit
От: &reY Украина http://www.livejournal.com/~1000turov/
Дата: 31.01.06 12:34
Оценка:
Здравствуйте, TestGirl, Вы писали:

TG>Мне немного не понятно , какой именно код программы вы проверяете, что он выполняет, и если можно то совсем с самого начало прям с запуска у меня Delphi 6 , я ещё не совсем разабралась как запускать оттуда dunit с кодом который я хочу оттестить


код программы в данном случае не имеет значения
я вам привел пример тестового модуля, который выполняет проверку при помощи DUnit
если вы не знаете, как запускать Delphi — думаю вам стоит почитать какие-то базовые книги по работе с Delphi
возможно вам стоит сразу перейти на Delphi 2006, там DUnit уже встроет с соотвествующими wizard'ами
Re[4]: помогите с Dunit
От: TestGirl  
Дата: 31.01.06 12:44
Оценка:
Здравствуйте, &reY, Вы писали:

Y>Здравствуйте, TestGirl, Вы писали:


TG>>Мне немного не понятно , какой именно код программы вы проверяете, что он выполняет, и если можно то совсем с самого начало прям с запуска у меня Delphi 6 , я ещё не совсем разабралась как запускать оттуда dunit с кодом который я хочу оттестить


Y>код программы в данном случае не имеет значения

Y>я вам привел пример тестового модуля, который выполняет проверку при помощи DUnit
Y>если вы не знаете, как запускать Delphi — думаю вам стоит почитать какие-то базовые книги по работе с Delphi
Y>возможно вам стоит сразу перейти на Delphi 2006, там DUnit уже встроет с соотвествующими wizard'ами



Да нет вы меня неправильно поняли, Delphi я умею запускать и даже есть навыки програмирование, к сожалению я не могу перейти на Delphi 2006 так как сдешний продукт пишеться на Delphi 6 , и вопрос заключается в том как подключить скаченый Dunit с интернета к среде программы delphi 6 , и как запустить тестирования кода...
Если вы мне напишете подробно, по шагово, то я буду вам сильно благадарна... если смолжете то покажите мне это на каком нить элементарном примере что нить типа суммы 2-х чисел.
Re[5]: помогите с Dunit
От: &reY Украина http://www.livejournal.com/~1000turov/
Дата: 31.01.06 13:46
Оценка: 10 (3)
Здравствуйте, TestGirl, Вы писали:

TG> Да нет вы меня неправильно поняли, Delphi я умею запускать и даже есть навыки програмирование, к сожалению я не могу перейти на Delphi 2006 так как сдешний продукт пишеться на Delphi 6 , и вопрос заключается в том как подключить скаченый Dunit с интернета к среде программы delphi 6 , и как запустить тестирования кода...

TG>Если вы мне напишете подробно, по шагово, то я буду вам сильно благадарна... если смолжете то покажите мне это на каком нить элементарном примере что нить типа суммы 2-х чисел.

отсюда скачиваете dunit-9.2.1.zip
https://sourceforge.net/project/showfiles.php?group_id=7592

распаковываете себе куда-нибудь
у меня это например: C:\Source\XP\_Precompiled\DUnit\Packages\9.2.1\

в дельфи открываете $(DUNIT)\src\dunit.bpg
нажимаете Ctrl+F9

дальше можете попробовать пример какой-нибудь
Alt+P+X (Add to Project)
examples\registration\UnitReg.dpr

возможно в свойствах проекта нужно будет добавить в Search Path: ..\..\src
чтобы Delphi находило dfm файлы

компилируете, запускаете
нажимаете на зеленую кнопку, видим результаты тестирования

для тестирования суммы чисел
открываем в нашем UnitReg примере модуль TestUnit1
приводим к такому виду (то что я добавил, выделено)


unit TestUnit1;

interface

uses TestFramework;

implementation

type
  TUnit1Test = class(TTestcase)
  published
    procedure testASureError; virtual;
    procedure TestSum;
  end;


// обычно это какая-то внешняя функция из другого модуля (здесь я её расположил для упрощения примера)
function SumFunc(A, B: Integer): Integer;
begin
  Result := A + B;
end;

procedure TUnit1Test.testASureError;
begin
  check(false, 'Unit1 error');
end;

procedure TUnit1Test.TestSum;
begin
  Check(SumFunc(1, 4) = (1+4), 'SumFunc not working');
end;

initialization
  // One possible way to register a test
  TestFramework.registerTest('', TUnit1test.Suite);
end.


компилируем запускаем
видим что тест прошел

вдруг кто-то поменял процедуру SumFunc, например так

function SumFunc(A, B: Integer): Integer;
begin
  Result := A + B + 1;
end;


опять компилируем, запускаем — видим что тест не прошел

вот такой оно вкратце
Re[6]: помогите с Dunit
От: TestGirl  
Дата: 31.01.06 14:24
Оценка:
Огромное вам спасибо...
теперь мне стало намного проще и понятнее, счас я попробую дальше сама разбираться!
Re[7]: помогите с Dunit
От: &reY Украина http://www.livejournal.com/~1000turov/
Дата: 31.01.06 16:39
Оценка: 13 (2) :)
Здравствуйте, TestGirl, Вы писали:

TG>Огромное вам спасибо...

TG>теперь мне стало намного проще и понятнее, счас я попробую дальше сама разбираться!

пожалуйста

P.S. благодарить еще можно оценками, и другим можно будет из списка сразу увидеть, что в топике есть "ценные" сообщения, и мне приятно
Re[8]: помогите с Dunit
От: Jack128  
Дата: 31.01.06 18:55
Оценка:
Здравствуйте, &reY, Вы писали:

Y>Здравствуйте, TestGirl, Вы писали:


TG>>Огромное вам спасибо...


Y>P.S. благодарить еще можно оценками, и другим можно будет из списка сразу увидеть, что в топике есть "ценные" сообщения, и мне приятно


"Спасибо" на хлеб не намажешь и в рот не положешь. Я правельно перевёл?
Re[9]: помогите с Dunit
От: TestGirl  
Дата: 01.02.06 07:06
Оценка: :)
Здравствуйте, Jack128, Вы писали:

J>Здравствуйте, &reY, Вы писали:


Y>>Здравствуйте, TestGirl, Вы писали:


TG>>>Огромное вам спасибо...


Y>>P.S. благодарить еще можно оценками, и другим можно будет из списка сразу увидеть, что в топике есть "ценные" сообщения, и мне приятно


J>"Спасибо" на хлеб не намажешь и в рот не положешь. Я правельно перевёл?



К сожалению нет! )))) Незнаю что насчёт на хлеб, к сожалению я вам ничего в рот положить не смогу! (( ЗП небыло ещё! )
Re: помогите с Dunit
От: Arsu Россия  
Дата: 17.02.06 15:23
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Люди добрый я начинающая тестировщица, у меня проблема с модульным тестированием. А именно с Dunit (Delphi)!

А>помогите разобраться , если можете то по полочкам, а то была на основном сайте DUnit , мало что поняла !!

Книжку почитай — Кент Бек "Экстремальное программирование, разработка через тестирование"
она тоненькая, листов 200 всего.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.