簡體   English   中英

Delphi DUnitX兩次測試表單的創建

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM