我目前正在編寫一些方法,對窗體控件進行一些基本操作,例如文本框,組框,這些操作都是通用的,並且可以在任何應用程序中使用。使用UI控件的單元測試方法
我開始編寫一些單元測試,只是想知道應該使用System.Windows.Forms中的真實窗體控件,還是應該模擬我試圖測試的部分。因此,例如:
說我有這個方法,這需要控制,如果它是一個文本框將清除Text屬性是這樣的:
public static void clearall(this Control control)
{
if (control.GetType() == typeof(TextBox))
{
((TextBox)control).Clear();
}
}
然後我想測試這個方法讓我做一些事情像這樣:
[TestMethod]
public void TestClear()
{
List<Control> listofcontrols = new List<Control>();
TextBox textbox1 = new TextBox() {Text = "Hello World" };
TextBox textbox2 = new TextBox() { Text = "Hello World" };
TextBox textbox3 = new TextBox() { Text = "Hello World" };
TextBox textbox4 = new TextBox() { Text = "Hello World" };
listofcontrols.Add(textbox1);
listofcontrols.Add(textbox2);
listofcontrols.Add(textbox3);
listofcontrols.Add(textbox4);
foreach (Control control in listofcontrols)
{
control.clearall();
Assert.AreEqual("", control.Text);
}
}
我應該加入到全球化志願服務青年來System.Window.Forms我的單元測試和使用真正的文本框對象?還是我做錯了?
注意:上面的代碼只是一個例子,我沒有編譯或運行它。
我同意,在測試.NET Framework時沒有真正的用處。微軟已經在很大程度上做到了這一點:)。 – Tigraine 2008-11-20 00:34:02