单元测试对工程质量带来的作用就不详细说明了,本文只讨论如何在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下的测试环境搭建就完成了!

 

 

Windows Phone Unit Test 环境搭建的更多相关文章

  1. Windows 10 IoT Serials 1 - 针对Minnow Board MAX的Windows 10 IoT开发环境搭建

    目前,微软针对Windows IoT计划支持的硬件包括树莓派2,Minnow Board MAX 和Galileo (Gen 1和Gen 2).其中,Galileo (Gen 1和Gen 2)运行的是 ...

  2. Windows Mobile 6开发环境搭建

    Windows Mobile 6开发环境搭建 本文主要介绍在已有的Visual Studio 2005和Microsoft SQL Server2008环境基础上,如何搭建Windows Mobile ...

  3. windows下面go语言环境搭建

    步骤一:golang下载 下载地址是:http://www.golangtc.com/download 下载完成之后解压缩,放到你的c:/根目录下面.然后配置一下环境变量! 环境变量配置如下: 1.新 ...

  4. Windows下的SVN环境搭建详解

    前言:最近因为要和其他人合作开发项目,所以花时间搭建了SVN的环境. 因为是初次使用SVN,对于SVN的环境搭建很不熟悉,再加上网上的教程都介绍的比较粗略,导致前前后后重做了几次. 当然最终是搭建成功 ...

  5. Windows 下 Ionic 开发环境搭建

    Ionic 介绍 首先,Ionic 是什么. Ionic 是一款基于 Cordova 及 Angular 开发 Hybrid/Web APP 的前端框架,类似的其他框架有:Intel XDK等. 简单 ...

  6. 环境搭建文档——Windows下的Python3环境搭建

    前言 背景介绍: 自己用Python开发了一些安卓性能自动化测试的脚本, 但是想要运行这些脚本的话, 本地需要Python的环境. 测试组的同事基本都没有安装Python环境, 于是乎, 我就想直接在 ...

  7. php手动搭建wamp环境(一)--之 Windows系统下PHP环境搭建

    1.PHP环境搭建的前提是 Apache HTTP Server (Apache 服务器)已经安装部署成功,并可以正常访问到服务器的主页面.Apache HTTP Server 的安装部署已经在上一篇 ...

  8. wnmp(windows+nginx+mysql+php)环境搭建和配置

    要求 必备知识 熟悉基本编程环境搭建. 运行环境 windows 7(64位); nginx-1.4.7;MySQL Server 5.5php-5.4.39-nts 下载地址 环境下载 Nginx是 ...

  9. [Flutter] Windows平台Flutter开发环境搭建(Andorid Studio)

    前两天网友在群里说起了Flutter,就了解了一下,在手机上跑了它的demo,直接就被打动了. 虽然网上有很多教程,但真正开始的时候,还是会碰到很多坑.下面详细的讲解Flutter + Android ...

随机推荐

  1. 主题 Theme 小结

    主题的使用 默认创建的Android工程中,在AndroidManifest.xml文件中有<application android:theme="@style/AppTheme&qu ...

  2. 在 Windows 上快速安装并运行 Laravel 5.x

    安装 PHP 注意一:Laravel 5.0 开始对 PHP 版本的要求是 >=5.4,Laravel 5.1 要求 PHP 版本>=5.5.9,所以,建议大家尽量安装 5.5.x 的最新 ...

  3. 解决Asp输出乱码问题

    在一个Asp页面中页面正常的中文字符都没有问题,但如果用Asp程序输出的话就显示为乱码 终于在百度经验上找到解决方案: 1.将文件编码更改为Utf-8 2.在页头添加"<%@LANGU ...

  4. dede 怎样调用其它栏目的文章或者缩略图列表且有分页效果?

    提问i:我做一个站点.有5个栏目,第5个栏目想把前4个栏目的文章都调用一下,搞一个汇总的文章集合. 发现用arclist调用不能设置pagesize的属性.从而不能给文章分页.然而list貌似不能调用 ...

  5. Xamarin C# Android for Windows 安装

    Xamarin C# Android for Windows  安装 Xamarin的. Android手动安装 安装Xamarin的  Android在Windows机器上   大多数时候,Xama ...

  6. centos版本7以上网卡名修改

    1.初始状态网卡 2.首先,先编辑网卡的配置文件 vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 将里面的NAME项修改为eth0 3.然后,禁 ...

  7. 通过Intel XDK编写跨平台app(二)

    通过Intel XDK编写跨平台app(一) 通过Intel XDK编写跨平台app(二) 在这个系列的上一篇文章中,我们大致了解了Interl XDK的概况.在这一部分中,我们会详细地介绍如何通过这 ...

  8. gsoap

    C++中如何使用gsoap开发WebService 1. 什么是gSOAPgSOAP是一个夸平台的,用于开发Web Service服务端和客户端的工具,在Windows.Linux.MAC OS和UN ...

  9. Jquery—Jquery中的(function($){...})(jQuery)

    当你第一眼看到"(function($){...})(jQuery)"的时候.你有什么感觉?呵呵呵,我当时还是止不住的从心底里骂了一句--操,这他妈什么劳什子.时过境迁,对于如今无 ...

  10. windows 设置定时锁屏

      设置间隔指定时间电脑自动锁屏 CreateTime--2017年7月3日10:16:14Author:Marydon 参考地址:电脑爱好者杂志 举例:实现每间隔45分钟,电脑自动锁屏 实现思路: ...