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/

作者:Nasa 
文章出处:我和未来有约会 (http://nasa.cnblogs.com/
版权声明:本文的版权归作者与博客园共有。转载时须注明本文的详细链接,否则作者将保留追究其法律责任。
时间: 2024-10-26 16:18:47

Silverlight单元测试框架的相关文章

jsamine单元测试框架和ext-js框架集成

最近研究了下jasmine框架,收益颇丰.基于公司一位同事的文档,我这里列举下jasmine框架的一些特征. 一:介绍 Jasmine框架是一个行为驱动的开发框架,用于测试javascript代码,它不会依赖于任何其他的javascript框架,也不需要一个DOM,并且它有非常简单和清晰的语法. 二:适用范围 因为Jasmine框架不依赖浏览器,DOM,或者任何javascript框架,所以它特别适合单元测试网站,Node.js项目或者任何有javascript运行的项目. 小例子1:比如要测试

使用Mootools开发JavaScript单元测试框架

Mootools是一个很好的JavaScript框架,它简洁.模块化,使用很简单,开发人员能够很快上手,编写扩展能力强.兼容性好的JavaScript代码.我这两天用了用,感觉和Prototype用法简直一模一样,不过功能似乎更加强,有很多效果,拖拽等.而且它的面向对象,继承比Prototype更直观好用,所以我开始学习这个框架. 首先看看Mootools的基本用法吧,更加详尽的解释可以在官方网站上找到. 1.? 如果我们要写一个Animal类,我们可以这样写: var Animal = new

Javascript单元测试框架QUnitjs详细介绍_javascript技巧

一.什么是 QUnit QUnit(http://qunitjs.com/) 是一个非常强大的javascript单元测试框架,可以帮你调试代码.它是由 jQuery 团队的成员写的,而且是 jQuery 的官方测试套装.但QUnit一般是足以测试任何常规 javascript 代码,它甚至可能通过一些 javascript 引擎比如 Rhino 或 V8 来测试服务器端 JavaScript.如果你不熟悉"单元测试"的概念,请不要担心.这不是很难理解的: 复制代码 代码如下: 在计算

Python单元测试框架之pytest -- 生成测试报告

继续pytest单元测试框架的学习,pytest可以生成多种类型的测试报告.这一节就来学习pytest如何生成测试报告. 创建test_calss.py 测试用例文件,这里以测试该文件为例. #coding=utf-8 class TestClass: def test_one(self): x = "this" assert "h" in x def test_two(self): x = "hello" assert x == "h

CPPUTest 单元测试框架

CPPUTest 虽然名称上看起来是 C++ 的单元测试框架, 其实它也是支持测试 C 代码的. 本文主要介绍用CPPUTest来测试 C 代码. (C++没用过, 平时主要用的是C) C++相关的内容都省略了. 本文基于 debian v7.6 x86_64. 1. CPPUTest 安装 现在各个Linux的发行版的源都有丰富的软件资源, 而且安装方便. 但是如果想要在第一时间使用最新版本的开源软件, 还是得从源码安装. debian系统为了追求稳定性, apt源中的软件一般都比较旧. 所以

测试框架的利好和繁荣:Java单元测试框架之争

最近Reddit上的讨论帖引发了一场JUnit和Spock两个测试框架支持者之间的辩论,源起于Jakub Dziworski发表的博文,其中心思想是"JUnit有什么问题?"目前来看几乎每个GitHub仓库都引入了基于JUnit的单元测试,不过也难怪毕竟JUnit已经经历了超过15个年头.但是Spock正在持续蚕食市场. JUnit由极限编程(eXtreme programming)创始人Kent Beck.<设计模式:可复用面向对象软件的基础>合著者Erich Gamma

Python单元测试框架之pytest -- 断言

对于测试来讲,不管是功能测试,自动化测试,还是单元测试.一般都会预设一个正确的预期结果,而在测试执行的过程中会得到一个实际的结果.测试的成功与否就是拿实际的结果与预期的结果进行比较.这个比的过程实际就是断言(assert). 在unittest单元测试框架中提供了丰富的断言方法,例如assertEqual().assertIn().assertTrue().assertIs()等,而pytest单元测试框架中并没提供特殊的断言方法,而是直接使用python的assert进行断言. 下面我们就来介

Redis内核单元测试框架

在修改Redis内核之后,第一步我们需要做的就是添加或者对应的单元测试用例来进行基本的单元测试.本文将对Redis内核单元测试框架进行基本的解析,并对如何编写测试用例进行基本的讲解. 单元测试框架流程 Redis单元测试框架是基于tcl sh脚本实现的,其启动的方式为runtest [options]. 每一类的测试case写在单独的测试文件中,测试文件列表写入到test_server中all_tests列表中. 在启动测试时,会以server模式启动一个测试服务器,再启动多个测试客户端与之通信

《测试驱动的嵌入式C语言开发》——2.3节CppUTest:一个用C++实现的自动化单元测试框架

2.3 CppUTest:一个用C++实现的自动化单元测试框架现在你已经见过了Unity,接下来我会快速介绍一下CppUTest,同时也是我更倾向于使用的对C和C++代码进行单元测试的自动化测试框架.事实上,不仅因为它是一个功能全面的测试框架,同时也因为我是CppUTest的作者之一.本书开始的几个例子会用Unity,在第8章之后会使用CppUTest.CppUTest是为了支持在多种操作系统上开发嵌入式软件而特别设计的.CppUTest的宏被设计成不需要了解C++也可以写测试用例.这使得C程序