c# – 使用UI控件的单元测试方法
发布时间:2020-12-15 18:29:26 所属栏目:百科 来源:网络整理
导读:我目前正在编写一些方法,对表单控件进行一些基本操作,例如Textbox,Groupbox,这些操作是通用的,可以在任何应用程序中使用. 我开始编写一些单元测试,只是想知道我应该使用System.Windows.Forms中的实际表单控件还是我应该模拟我试图测试的部分.例如: 假设我有
我目前正在编写一些方法,对表单控件进行一些基本操作,例如Textbox,Groupbox,这些操作是通用的,可以在任何应用程序中使用.
我开始编写一些单元测试,只是想知道我应该使用System.Windows.Forms中的实际表单控件还是我应该模拟我试图测试的部分.例如: 假设我有这个控制方法,如果它是一个文本框,它将清除文本属性,如下所示: 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的referance添加到我的单元测试并使用真正的Textbox对象吗?或者我做错了吗? 注意:上面的代码只是一个例子,我没有编译或运行它. 解决方法
如果您尝试通过模拟与UI控件的交互来对应用程序逻辑进行单元测试,则应使用
MVC pattern进行一些抽象.然后您可以只使用存根视图并从单元测试中调用控制器方法.
如果它是您尝试进行单元测试的实际控件,那么您就拥有了我. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |