2011-05-02 66 views
1

我在Visual Studio 2010中使用內置單元測試。下面的代碼顯示了我的單元測試的基本結構。我應該如何將owner參數傳遞給單元測試的對話框?

public void StartEditorTest() 
{ 
    IWin32Window owner = null; 
    var openDialog = new OpenFileDialog(); 

    openDialog.Title = "Select file"; 

    if (openDialog.ShowDialog(owner) == DialogResult.OK) 
    { 
     bool expected = false; // TODO: Initialize to an appropriate value 
     bool actual; 

     var myEditorForm = new MyEditorForm(); 

     // StartEditor does some initialization, calls ShowDialog(owner) 
     // and returns a boolean 
     actual = myEditorForm.StartEditor(owner, openDialog.FileName); 
     Assert.AreEqual(expected, actual); 
    } 
} 

我遇到的問題是openDialog並不總是顯示爲前景窗口。它可以正確打開,但嵌套在windows z順序的某個位置,而且我必須使用Alt-Tab才能找到它。

我想指定Visual Studio IDE作爲所有者,但我不知道如何去做,或者即使這是正確的做法。我只想從我的單元測試中啓動的任何對話框都顯示在前臺。

+5

只是一個評論:這不是一個單元測試。單元測試意味着自成一體。你必須輸入任何東西都不是「獨立的」。 – 2011-05-02 16:20:55

+0

採取了點。我爲了易用性(讀取「懶惰」)來測試不同的文件。 – 2011-05-02 18:07:39

+0

在這種情況下,您可以簡單地在該表單中添加一些代碼,將其引入前臺。我不認爲,你可以得到正確的所有者,因爲它將是Visual Studio的內部窗口。也許,你可以嘗試使用VS的主窗口... – 2011-05-02 21:11:50

回答

相關問題