UML软件工程组织

 

 

在Silverlight中做单元测试

2008-07-10 来源:网络

 

我们在Silverlight 2 Beta1 版本中发布的一个重要的功能是允许你进行API层次和界面层次单元测试的单元测试用具(unit test harness)。这个测试用具是跨浏览器和跨平台的,可以用来快速运行和核实自动化的单元测试:

除了发布Silverlight的这个单元测试用具外,我们还发布了用它建造的,对在Permissive License许可下发布的Silverlight控件源代码提供了自动化测试涵盖的2千个左右单元测试的源码。这个许可允许你将控件的源码进行修改,运行单元测试核实其行为,并且以任何形式重新发布这些控件。

学习如何单元测试Silverlight

Jeff Wilcox,Silverlight单元测试框架和用具的开发者,在这里发表了一篇精彩的博客贴子,讨论如何在解决方案中加一个Silverlight Unit Test项目。你可以从我上个月撰写的这篇Expression Blend教程贴子上下载他用来示范测试的聊天应用。你也可以观看Jeff录制的这个很酷的录像贴子,在其中他对该单元测试框架和我们发布的测试案例做了示范。

就象Jeff在他的贴子里展示的那样,你现在可以往你的Visual Studio解决方案中加一个“Silverlight测试项目”,该项目封装针对你正开发的应用的单元测试:

然后你可以往测试项目中添加单元测试类,来测试API或模拟Silverlight控件中的界面动作(例如模拟按钮点击等)。

然后你可以运行测试项目,执行其中的测试,来核实和汇报它们的状态。

Jeff的测试框架自动地提供基于浏览器的测试用具和报告系统(意味着你可以在任何能运行Silverlight的浏览器或OS组合上运行它):

Jeff的测试框架支持在每个测试后快速重置控件(以及避免对每个测试案例重启新的浏览器实例,这使得测试非常快)。

你可以在几秒钟内很快地突过成百上千个自动化的测试:绿的结果意味着测试都通过了。红的结果表示某个测试案例失败了,同时记录断言失败(assertion failure)以及出现的运行时异常。

结语

如果你曾有困难采取策略对AJAX应用进行自动化的单元测试或TDD的话,我认为你会发现Silverlight提供了一些极棒的测试选项。使用Visual Studio,你还可以将测试分离到你的解决方案的另外的项目中去,你不需要在你的Silverlight应用嵌入测试就可以运行它们。

除了支持上述的单元测试用具和框架外,我们还将在Silverlight 2的最终版中支持UI自动化APIs。这些API将促成accessibility的场景(允许屏幕阅读器可以用于Silverlight,以及促成 Silverlight应用对Section 508的相容性)。这些UI自动化API还将促成这样的UI测试场景,你可以建造end to end的浏览器界面自动化,来模拟真正的鼠标和键盘交互,促成自动化的end to end体验的测试。这些组合应该允许你建造极其坚固和可维护的RIA方案。

希望本文对你有所帮助。

 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号