[英]Delphi DUnitX tests creation of form twice
我用DUnitX創建了一個TestCase,它會自動生成一些代碼,而我對如何構造測試用例感到困惑。
(自動生成的)代碼如下所示:
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
聲明的虛擬構造函數。 我不知道你為什么不這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.