Как запустить TestCase из IDE?DUnit: Как запустить тесты?
я создал новый проект, с одной, простой, форма:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
private
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
end.
Теперь я добавлю тест, чтобы проверить, что толкая Button1
делает то, что он должен:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
uses
TestFramework;
type
TForm1Tests = class(TTestCase)
private
f: TForm1;
protected
procedure SetUp; override;
procedure TearDown; override;
published
procedure TestButton1Click;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//todo
end;
{ TForm1Tests }
procedure TForm1Tests.SetUp;
begin
inherited;
f := TForm1.Create(nil);
end;
procedure TForm1Tests.TearDown;
begin
f.Free;
inherited;
end;
procedure TForm1Tests.TestButton1Click;
begin
f.Button1Click(nil);
Self.CheckEqualsString('Hello, world!', f.Caption);
end;
end.
Учитывая, что я сделал (тестовый код в проекте GUI), как мне теперь запускать запуск тестов? Если я нажать F9 то форма просто появляется:
alt text http://i39.tinypic.com/zsobhv.jpg
В идеале было бы кнопка или пункт меню, в интегрированной среде говоря Run DUnit Тесты:
alt text http://i44.tinypic.com/24wvipw.jpg
Я живу в мире мечты? Земля фантазии, живущая в доме с камедью на леденецкой дорожке?
. В стороне вы обнаружите, что ваша бизнес-логика проще провести единичный тест, если вы разделите ее на классы, вместо того, чтобы пытаться самостоятельно тестировать обработчики событий пользовательского интерфейса , –
@Monk: Недостатком этого является то, что у меня код распространяется на несколько классов или, что еще хуже, на несколько файлов. –