Silverlight单元测试框架

Silverlight单元测试框架

微软的silverlight单元测试框架现在已经托管到了MSDN Code Gallery网站上,你可以在上边找到最新的Release版本和一些最新的资料。

http://code.msdn.microsoft.com/silverlightut/

每当一个开发人员尝试过了测试驱动开发(TDD)就会十分的欣赏这个方式。接下来我将介绍一下如何使用来使用这个框架。

开始单元测试项目

配置环境

1.下载Silverlight Unit Test VS模板 2.下载Silverlight Unit Test Framework Binaries库

解压

将里面包含的SilverlightTestProject_CSharp.zip和SilverlightTestProject_VB.zip文件拷贝到(不要再把上述两个.zip文件解压了,不然VS不认)

%userprofile%\Documents\Visual Studio 2008\Templates\ProjectTemplates

再将SilverlightTestClass_CSharp.zip以及SilverlightTestClass_VB.zip文件拷贝到

%userprofile%\Documents\Visual Studio 2008\Templates\ItemTemplates

启动VS2008

看一下项目文件

添加一下缺少的DLL引用

配置成功!

浅析框架

这里项目里只有两个文件,让我们来看看

App.xaml.cs

private void Application_Startup(object sender, StartupEventArgs e)
{
    this.RootVisual = UnitTestSystem.CreateTestPage();
} 

其中UnitTestSystem是Microsoft.Silverlight.Testing命名空间下的一个类,而CreateTestPage()方法将返回一个UIElement。 Test.cs

很简单就是在里边写测试方法的。

[TestMethod]
public void TestMethod()
{
    Assert.Inconclusive();
}

改为

[TestMethod] public void TestMethod()
{
    Assert.IsTrue(true);
}

F5运行

测试自己的Silverlight项目

新建一个Silverlight项目

给MainPage.xaml做简单的修改

    public partial class MainPage : UserControl
    {
        private string _author;
        public string Author { get; set; }

        public MainPage()
        {
            InitializeComponent();
        }
    }

单元测试中添加对其的引用,并可新建立一个class来对其做测试

编写测试方法

    [TestClass]
    public class MyTest
    {
        //[TestMethod]
        //[ExpectedException(typeof(NullReferenceException))]
        //public void NullInstance() {
        //    MainPage mainpage = null;
        //    string author = mainpage.Author;
        //}

        [TestMethod]
        [Description("测试用户名")]
        public void VerifyAuthor() {
            MainPage page = new MainPage();
            page.Author = "nasa";
            Assert.IsNotNull(page.Author);
            Assert.AreEqual(page.Author, "nasa");
        }
    }

F5运行

也可点击单个的方法查看详情

大家可以直接将自己的sl项目附加进来进行测试,当然在实际的项目中不会这么简单。

总结

使用TDD单元测试框架为Silverlight带来了一个更好的测试方案,你不用再一点一点的设置断点跟着程序跑。 

能充分的进行单元测试,是提高软件质量,降低开发成本的必由之路。如果养成了对自己写的代码进行单元测试的习惯,不但可以写出高质量的代码,而且还能提高编程水平。

附录

ScottGu introduction

Introductory post by Jeff Wilcox

Introductory video and screencast

VSTT basics

How to use these bits with Beta 2

参考资料

http://www.cnblogs.com/ibillguo/archive/2008/10/27/1320067.html

http://weblogs.asp.net/scottgu/archive/2008/04/02/unit-testing-with-silverlight.aspx

http://www.jeff.wilcox.name/2008/03/silverlight2-unit-testing/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

WCF Data Services 5.0 和 EF 4.3 Code First

WCF Data Services 5.0已经在4月9日发布,支持OData V3版本的协议。之前版本的WCF Data Services是随.NET FX 4...

27070
来自专栏大内老A

.NET Core跨平台的奥秘[中篇]:复用之殇

在《.NET Core跨平台的奥秘[上篇]:历史的枷锁》中我们谈到:由于.NET是建立在CLI这一标准的规范之上,所以它天生就具有了“跨平台”的基因。在微软发布...

26280
来自专栏数值分析与有限元编程

CodeBlocks 安装及配置

CodeBlocks 是最适合gfortran的IDE,可以说是量身打造,配置也不复杂。而且体量很小,跟vs动不动就几个G甚至十几个G相比,那是小巫见大巫了。C...

27430
来自专栏跟着阿笨一起玩NET

Winform注册和注销全局快捷键

本文转载:http://www.cnblogs.com/scottckt/archive/2007/12/03/981105.html

25910
来自专栏漫漫全栈路

修改Visual Studio类模板添加版权注释信息

在开发过程中,经常需要给类或接口与添加public修饰符和一些相关的注释信息,这个工作是机械而枯燥的,而这个简单的需求可以通过修改VS自带类模板来实现的。 打...

38540
来自专栏从零开始学自动化测试

python接口自动化3-自动发帖(session)

前言 上一篇模拟登录博客园,但这只是第一步,一般登录后,还会有其它的操作,如发帖,评论等,这时候如何保持会话呢? 一、session简介 1.查看帮助文档...

40230
来自专栏葡萄城控件技术团队

Asp.Net MVC4入门指南(9):查询详细信息和删除记录

在本教程中,您将查看自动生成的Details和Delete方法。 查询详细信息和删除记录 打开Movie控制器并查看Details方法。 public Acti...

23980
来自专栏iOS技术杂谈

iOS多线程——你要知道的NSThread都在这里你要知道的iOS多线程NSThread、GCD、NSOperation、RunLoop都在这里

你要知道的iOS多线程NSThread、GCD、NSOperation、RunLoop都在这里 转载请注明出处 https://cloud.tencent.co...

38190
来自专栏逆向技术

常见注入手法第二讲,APC注入

                  常见注入手法第二讲,APC注入 首先,我们要了解下什么是APC APC 是一个简称,具体名字叫做异步过程调用,我们看下MSD...

23580
来自专栏GuZhenYin

[.NET跨平台]Jexus独立版本的便利与过程中的一些坑

本文环境与前言 之前写过一篇相关的文章:在.NET Core之前,实现.Net跨平台之Mono+CentOS+Jexus初体验 当时的部署还是比较繁琐的,而且需...

39350

扫码关注云+社区

领取腾讯云代金券