• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

为WPF项目创建单元测试

发布: 2008-9-25 09:59 | 作者: 不详 | 来源: 测试时代 采编 | 查看: 66次 | 进入软件测试论坛讨论

领测软件测试网 可能你已发现一个问题,我们无法使用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);
    }
}

单击显示全图,Ctrl+滚轮缩放图片
为了让调用线程为STA,我们可以编写一个辅助类CrossThreadTestRunner:

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: WPF 单元 项目

31/3123>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网