Windows Phone Unit Test 环境搭建

单元测试对工程质量带来的作用就不详细说明了,本文只讨论如何在WP开发环境下搭建测试工程

   

历史

从WP7时代官方是不支持UnitTest工程的,因此需要采用WPToolkitTest这个工程来实施单元测试,

可参考Nokia Develop上的文章:地址

这种方式来搭建的测试环境,测试时需要在模拟器或者真机上点击开始测试按钮进行测试,如此方式笔者认为并不友好

到了VS2012Update2发布之后官方的单元测试终于加入了进来,并且可以依靠VS的测试管理来更加方便的进行管理测试用例:

   

搭建步骤

参考MSDN中的教程:地址

这个教程已经很清晰的说明了如何创建一个Windows Phone Unit Test 工程,但教程中未提及的内容还是有一些的,下面我们来一一解决这个问题:

1、Async/Await

来到了WP8时代,加入了await和async这两个关键字,显然这两个关键字对于程序结构的改善是明显的,因此在项目中我们也会自己来封装如此风格的接口,那么如果测试代码中存在此种风格的代码该如何测试呢?

通过例子来看下:

   

我们看上面这个接口,接口中的方法是通过token获取用户信息那么我们在测试的时候对应的测试代码应该这样来写:

   

很关键的一个点就是要把测试函数加上async 和 Task修饰词,这样便可以正常的测试了

2、mock库该怎么办

提到单元测试就会说道mock这个概念,这里依然不详细展开来说明why mock 以及how to mock,可自己去关键词来搜索学习。

在笔者的使用过程中发现,用nuget方式来添加mock库时,大多数的主流mock库都不支持Windows Phone:

   

比如上面的Moq 这个库,这让人很沮丧。。。

但有问题就自然有解决办法,我们不通过Nuget来添加,而是使用Silverlight版本的Moq,下载地址

下载后找到编译好的Silverlight版本的dll添加到工程中:

注意这两个都要添加进来,添加时会有警告,忽略了就可以了,如此我们的Moq库就可以正常使用了:

   

   

上面的两个问题解决后Windows Phone下的测试环境搭建就完成了!

 

WP8交流群:182659848

 

posted @ 2014-01-23 11:17  孤狼晖  阅读(961)  评论(3编辑  收藏  举报