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下的测试环境搭建就完成了!
Windows Phone Unit Test 环境搭建的更多相关文章
- 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)运行的是 ...
- Windows Mobile 6开发环境搭建
Windows Mobile 6开发环境搭建 本文主要介绍在已有的Visual Studio 2005和Microsoft SQL Server2008环境基础上,如何搭建Windows Mobile ...
- windows下面go语言环境搭建
步骤一:golang下载 下载地址是:http://www.golangtc.com/download 下载完成之后解压缩,放到你的c:/根目录下面.然后配置一下环境变量! 环境变量配置如下: 1.新 ...
- Windows下的SVN环境搭建详解
前言:最近因为要和其他人合作开发项目,所以花时间搭建了SVN的环境. 因为是初次使用SVN,对于SVN的环境搭建很不熟悉,再加上网上的教程都介绍的比较粗略,导致前前后后重做了几次. 当然最终是搭建成功 ...
- Windows 下 Ionic 开发环境搭建
Ionic 介绍 首先,Ionic 是什么. Ionic 是一款基于 Cordova 及 Angular 开发 Hybrid/Web APP 的前端框架,类似的其他框架有:Intel XDK等. 简单 ...
- 环境搭建文档——Windows下的Python3环境搭建
前言 背景介绍: 自己用Python开发了一些安卓性能自动化测试的脚本, 但是想要运行这些脚本的话, 本地需要Python的环境. 测试组的同事基本都没有安装Python环境, 于是乎, 我就想直接在 ...
- php手动搭建wamp环境(一)--之 Windows系统下PHP环境搭建
1.PHP环境搭建的前提是 Apache HTTP Server (Apache 服务器)已经安装部署成功,并可以正常访问到服务器的主页面.Apache HTTP Server 的安装部署已经在上一篇 ...
- wnmp(windows+nginx+mysql+php)环境搭建和配置
要求 必备知识 熟悉基本编程环境搭建. 运行环境 windows 7(64位); nginx-1.4.7;MySQL Server 5.5php-5.4.39-nts 下载地址 环境下载 Nginx是 ...
- [Flutter] Windows平台Flutter开发环境搭建(Andorid Studio)
前两天网友在群里说起了Flutter,就了解了一下,在手机上跑了它的demo,直接就被打动了. 虽然网上有很多教程,但真正开始的时候,还是会碰到很多坑.下面详细的讲解Flutter + Android ...
随机推荐
- Webview 支持文件上传
默认情况下情况下,在一个带有input tpye=file标签的Html页面,使用Android的WebView是不能够支持上传文件的(在iOS和微信上完全正常工作).而这个,也是在我们的前端工程师告 ...
- java学习笔记13--反射机制与动态代理
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...
- keepalived的脑裂问题
keepalived的脑裂问题 学习了:http://blog.51cto.com/10630401/2089847 split-brain 无HA不脑裂
- (转)[ActionScript 3] Google-ProtoBuf for AS
最近由于项目的需要,研究了一下protobuf.在这里分享一下经验,具体介绍网上也有不少,可以百度先了解一下. ProtoBuf在as中主要就是序列反序列化的作用,我们主要用它来代替amf,因为像c+ ...
- Unity3d使用json与javaserver通信
Unity3d使用json能够借助LitJson 下载LitJson,复制到Unity3d工作文件夹下 于是能够在代码中实现了 以下发送请求到server并解析 System.Collections. ...
- 初识 NoSQL Databases RethinkDB
初识 NoSQL Databases RethinkDB rethinkDB所有数据都是基于 json的Document; 官网:http://rethinkdb.com/ github: https ...
- RSA 在C#里简单实现
1.选择两个大素数:p,q;2.计算所得n:n=p*q;3.计算中间结果t:t=(p-1)*(q-1);4.选择一个e:要求e和t的最大公因数是1(也就是e与t互素);5.计算所得d:d*e mod ...
- iOS7 UIKit动力学-重力特性UIGravityBehavior
续文 在iOS7中事实上新加了非常多新的特性.之前看过,也了解过一些新的内容.如新的动力学特性,TextKit的图文混排,还有自己定义的动画跳转等.那段时间也比較忙,没时间整理.如今项目也弄完了,打算 ...
- Python 创建包含列表的元组
“可变”的tuple前面我们看到了tuple一旦创建就不能修改.现在,我们来看一个“可变”的tuple:>>> t = ('a', 'b', ['A', 'B'])注意到 t 有 3 ...
- om.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException
Error:Execution failed for task ':app:dexDebug'.> com.android.ide.common.process.ProcessException ...