nev*_*ves 2 delphi unit-testing dunit delphi-7
正如在视觉应用程序中有时常见的那样,我有一些代码,其中数据在可视组件(TTreeView组件)中维护.我正在重构代码并为逻辑创建单元测试.
我的测试项目中唯一的可视化形式是GUITestRunner.将来我计划在持续集成服务器下将测试作为控制台应用程序运行,所以我没有任何形式.
当我尝试创建没有父级的TTreeView小部件并使用它时,我收到以下错误:
Control '' has no parent window
Run Code Online (Sandbox Code Playgroud)
在我的测试套件SetUp方法上创建小部件并在TearDown中销毁它的最佳方法是什么?是否可以在控制台应用程序中使用可视窗口小部件?我不需要显示它,甚至不需要处理事件.我只需要创建子节点并访问数据.
我设法让它与一个丑陋的黑客一起工作,但我想知道是否有一些标准的做法.
当然,在我阳光明媚和遥远的未来,我将重构这个2.1万行格式的代码,我的所有数据都将处于漂亮的数据结构中,并且这些测试不是必需的,但现在我需要它.
您需要创建一个隐藏(即不可见)窗口作为父窗口.这是一个示例控制台应用程序,证明这种方法有效.
program HiddenWindow;
{$APPTYPE CONSOLE}
uses
SysUtils, Forms, StdCtrls;
var
Form: TForm;
begin
Form := TForm.Create(Application);
with TListBox.Create(Form) do begin
Parent := Form;
Items.Add('test');//fails if the parent is not set
end;
end.
Run Code Online (Sandbox Code Playgroud)