我从 DUnit 测试开始,对于新手的任何错误,我深表歉意。当我尝试运行简单测试并且编译器运行我的测试类的 SetUp 时,它停止返回消息“无法创建表单。当前没有 MDI 表单处于活动状态'。
经过一番研究,我找到了一些解释,但与我的问题无关。
问题似乎是当我调用我的子源类的 Create 方法时 - 原点是指我拥有所有要测试的过程和函数的类,让我们通过 TfrmFoo 调用它。我的测试类应该是TestTfrmFoo。TFrmFoo 有一个带有一些基本代码的父级,即 TfrmParentFoo。
我这样调用 Create 方法:
...
implementation
procedure TestTfrmFoo.SetUp;
begin
FfrmParentFoo := TfrmParentFoo.Create(nil);
FfrmFoo := TfrmFoo.Create(FfrmParentFoo);
end;
procedure TestTfrmFoo.TearDown;
begin
FfrmFoo.Free;
FfrmFoo := nil;
end;
...
之后调用TfrmFoo类的Create方法,出现如下错误:' Cannot create form. 当前没有 MDI 表单处于活动状态'。
我已经尝试覆盖我的子类 TfrmFoo 的创建,将 FormStyle 属性设置为“fsNormal”而不是“fsMDIChild”,什么也没有。我还发现了一些关于使用 sleep(500) 的想法,但问题仍然存在。
编辑:贡献
后Remy Lebeau
,我更改了SetUp测试以在调用子窗体之前创建父窗体,并将其用作创建子窗体的参数。相同的错误信息。我是不是改错了什么?
还有其他提示吗?谢谢!