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%DocumentsVisual Studio 2008TemplatesProjectTemplates
再将SilverlightTestClass_CSharp.zip以及SilverlightTestClass_VB.zip文件拷贝到
%userprofile%DocumentsVisual Studio 2008TemplatesItemTemplates
启动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带来了一个更好的测试方案,你不用再一点一点的设置断点跟着程序跑。
能充分的进行单元测试,是提高软件质量,降低开发成本的必由之路。如果养成了对自己写的代码进行单元测试的习惯,不但可以写出高质量的代码,而且还能提高编程水平。
附录
Introductory post by Jeff Wilcox
Introductory video and screencast
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/
- 如何科学地蹭热点:用python爬虫获取热门微博评论并进行情感分析
- 使用ETag进行session的降级
- 关于oracle中的反连接(r3笔记第95天)
- 用Python爬取网易云音乐的用户评论文本
- grunt任务之seajs模块打包
- 【Java提高十八】Map接口集合详解
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(五)讲一下maven
- Thinking in React
- 【Java提高十六】集合List接口详解
- JS的内建函数reduce
- Error: Cannot find module 'gulp-clone'问题的解决
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(四)代码简化
- Angular源码分析之$compile
- TensorFlow实例: 手写汉字识别
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- CUDA编程之线程模型
- CMake入门实战——单个源文件
- [Go] GO语言实战-实现标题闪烁
- Windows平台安装Oracle11.2.0.4客户端报错INS-30131
- 实战丨如何制作一个完整的外卖微信小程序开发项目(已开源)
- CMake入门实战——多个源文件
- CMake入门实战——自定义编译选项
- CMake入门实战——其他
- git报错,远程克隆和更新不下来解决方法
- CMake入门实战——生成安装包
- PyTorch 60分钟入门系列之PyTorch简介
- 解决Nginx转发http后不走https的问题 后端tomcat
- PyTorch 60分钟入门系列之自动求导
- Roslyn 打包 NuGet 包添加改动日志
- PyTorch 60分钟入门系列之神经网络