NUnitForms测试GUI应用程序的优秀工具

发表于:2015-4-24 10:33

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:大智若简    来源:51Testing软件测试网采编

  对于层层嵌套控件的命名,请参考下面的例子
  控件的命名 NUnitForms通过控件的Name属性来查找你要测试的控件. 如果在一个form中有多个相同名称的控件, 那么他们必须像下面这样进行限定:
  Form    PanelA      UserControl1        Button           (PanelA.UserControl1.Button)       UserControl2        Button           (UserControl2.Button)    PanelB      UserControl1        Button           (PanelB.UserControl1.Button)
  Model/Modeless Dialog 模式窗体/非模式窗体
  当测试窗体时,如果这个窗体要调出子窗体或是调出对话框,这时需要把窗体的测试逻辑放到一个public void签名的方法中,并用ExprectModel指定方法名称:
[Test]
public void TestOKButtonTest()
{
ExpectModal("FormName", "formNameHandler");
FormName form = new FormName();
form.ShowDialog();
public void formNameHandler ()
{
ButtonTester buttonTester = new ButtonTester("okButton", " FormName");
// Check the OK button's text and then click it
Assert.AreEqual("OK", buttonTester.Text, "FormName’s OK button text is wrong '" +  buttonTester.Text + "'");
buttonTester.Click();
}
  测试时,如果要调出message box,请参考下面的写法
  ExpectModal("messageBoxCaption", "messageBoxClickerMethod");
  多线程测试
  如果运用到多线程测试窗体,应该像下面的例子一样,注册一个委托类型,把测试代码放到该方法中
public void genericFormHandler()
{
// Do nothing in this method!
}
[Test]
public void MainFormTest()
{
MainGUIForm mainForm = new MainGUIForm();
mainForm.OnFormReady += new EventHandler<EventArgs> (mainFormTestLogic);
ExpectModal("MainGUIForm", "genericFormHandler");
mainForm.ShowDialog();
}
public void mainFormTestLogic (object sender, EventArgs e)
  目前可以下载到的版本是NUnitFormsV2.0.0.5 alpha4。
  单元测试的目的是改善代码
  既然可以调出窗体,就可以测试自定义控件,这是一种测试自定义控件的好方法。
  测试项目与Resharper配合起来,很容易启动,调试,修改,这样做单元测试,才是有益于改善代码的测试。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号