我目前正在编写一些方法,对窗体控件进行一些基本操作,例如文本框,组框,这些操作都是通用的,并且可以在任何应用程序中使用。使用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