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作爲所有者,但我不知道如何去做,或者即使這是正確的做法。我只想從我的單元測試中啓動的任何對話框都顯示在前臺。
只是一個評論:這不是一個單元測試。單元測試意味着自成一體。你必須輸入任何東西都不是「獨立的」。 – 2011-05-02 16:20:55
採取了點。我爲了易用性(讀取「懶惰」)來測試不同的文件。 – 2011-05-02 18:07:39
在這種情況下,您可以簡單地在該表單中添加一些代碼,將其引入前臺。我不認爲,你可以得到正確的所有者,因爲它將是Visual Studio的內部窗口。也許,你可以嘗試使用VS的主窗口... – 2011-05-02 21:11:50