¿Cómo ejecuto TestCase del IDE?DUnit: ¿Cómo ejecutar pruebas?
he creado un nuevo proyecto, con una única y sencilla, la forma:
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.
Ahora voy a añadir un caso de prueba para comprobar que empujar Button1
hace lo que debe:
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.
Teniendo en cuenta lo que he hecho (código de prueba en el proyecto GUI), ¿cómo puedo activar una ejecución de las pruebas? Si empujo F9 entonces la forma simplemente aparece:
alt text http://i39.tinypic.com/zsobhv.jpg
Lo ideal habría un botón, o una opción de menú, en el IDE diciendo Run DUnit Pruebas de:
alt text http://i44.tinypic.com/24wvipw.jpg
¿Estoy viviendo en un mundo de ensueño? ¿Una tierra de fantasía, viviendo en una casa de gomitas en el camino de la piruleta?
Como acotación al margen, usted encontrará que la lógica de negocio es más fácil de probar la unidad si se separa hacia fuera en clases, en lugar de tratar a la unidad de probar directamente los controladores de eventos de interfaz de usuario . –
@Monk: La desventaja de eso es que tengo un código repartido entre varias clases, o peor aún, varios archivos. –