为WPF项目创建单元测试

发表于:2008-9-25 16:30

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

 作者:未知    来源:网络转载

  可能你已发现一个问题,我们无法使用VS对WPF项目创建单元测试(VS2005不行,VS2008我没试过,但据说也不行),这让人很郁闷,这里将介绍如何使用NUnit来对WPF项目创建单元测试并解决其中的难题(但利用NUnit来对WPF创建单元测试时并不会像针对.Net2.0一样容易,可能会出现一些小问题)。

  1,对普通类(非WPF UI组件)进行测试:

  这和在.Net2.0中使用NUnit进行测试时一样,不会出现任何问题,参考下面的代码:

以下是引用片段:
  [TestFixture]
  public class ClassTest
  {
  [Test]
  public void TestRun()
  {
  ClassLibrary1.Class1 obj = new ClassLibrary1.Class1();
 
  double expected = 9;
  double result = obj.GetSomeValue(3);
 
  Assert.AreEqual(expected, result);
  }
  }

  2,对WPF UI组件进行测试

  使用NUnit对WPF UI组件(比如MyWindow,MyUserControl)进行测试的时候,NUnit会报如下异常:“The calling thread must be STA, because many UI components require this”。

  下面是错误的测试代码:

以下是引用片段:
  [TestFixture]
  public class ClassTest
  {
  [Test]
  public void TestRun()
  {
  WindowsApplication1.Window1 obj = new WindowsApplication1.Window1();
 
  double expected = 9;
  double result = obj.GetSomeValue(3);
 
  Assert.AreEqual(expected, result);
  }
  }

  

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号