Delphi DUnitX两次测试表单的创建

Delphi DUnitX两次测试表单的创建,delphi,dunitx,Delphi,Dunitx,我用DUnitX创建了一个测试用例,它自动生成了一些代码,我不知道应该如何构造测试用例 (自动生成的)代码如下所示: procedure TestTBtnMgmtForm.SetUp; begin FBtnMgmtForm := TBtnMgmtForm.Create; end; procedure TestTBtnMgmtForm.TearDown; begin FBtnMgmtForm.Free; FBtnMgmtForm := nil; end; procedure Tes

我用DUnitX创建了一个测试用例,它自动生成了一些代码,我不知道应该如何构造测试用例

(自动生成的)代码如下所示:

procedure TestTBtnMgmtForm.SetUp;
begin
  FBtnMgmtForm := TBtnMgmtForm.Create;
end;

procedure TestTBtnMgmtForm.TearDown;
begin
  FBtnMgmtForm.Free;
  FBtnMgmtForm := nil;
end;

procedure TestTBtnMgmtForm.TestFormCreate;
var
  Sender: TObject;
begin
  // TODO: Setup method call parameters
  FBtnMgmtForm.FormCreate(Sender);
  // TODO: Validate method results
end;

但是,
TBtnMgmtForm.Create
将自动调用
.FormCreate
。以某种方式将这两者分开是一种好的做法吗?
.Create
.FormCreate
之间有什么区别或应该有什么区别?

表单的构造函数将调用
OnCreate
事件处理程序(如果已分配)。在您的情况下,它被分配给名为
FormCreate
的函数

一般来说,事件处理程序由框架调用,不应直接调用。我看不到足够的代码来确定,但我的直觉告诉我,你根本不应该调用
FormCreate
。这是框架的工作

OnCreate
的要点是,它允许您将代码注入表单类的构造函数,而无需重写构造函数。您可以使用表单设计器添加事件处理程序并填写代码。我个人认为,
OnCreate
有点容易。一旦您知道如何重写构造函数,那么这样做似乎更加明确


但是,您似乎有一个带有无参数构造函数的窗体。这很奇怪。通常,您会覆盖
TComponent
中声明的虚拟构造函数。我想知道你为什么不那样做

这纯粹是RAD Studio生成的代码。无参数构造函数将绘制错误,这是正确的。此代码生成为测试用例,因此它创建了一个测试
FormCreate
的函数。我不明白为什么它会这样做,因为每个
设置中都会调用
FormCreate
。听起来好像IDE不能为您编写测试。你最好自己做。仅供参考,这里没有嘲弄。只有被测试的系统和测试类