(此文章同时发表在本人微信公众号“dotNET每日精华文章”,欢迎右边二维码来关注。)

题记:想必很多人已经和我一样在使用ASP.NET 5开发真实世界的应用了,那么做好单元测试和集成测试是必不可少的。现在首选使用的测试框架是xUnit,而它的官方文档中的一篇文章其实是一个很好的入门向导。

虽然之前我也介绍过在DNX/ASP.NET 5中进行单元测试或者集成测试的文章,且这些文章都在一致使用xUnit,不过对于xUnit的具体使用反而讲解的不够清楚(或者说不够简单易懂)。其实,在xUnit的官方文档中,已经更新了一篇专门针对DNX/ASP.NET 5的入门向导,可以帮助初学者快速地上手。

文章主要讲解了6个部分(或步骤):

  1. 创建一个Class Library (Package)的项目。这是DNX/ASP.NET 5的专有项目,想要测试DNX/ASP.NET 5的项目,必须建立这种项目类型来作为测试项目。
  2. 在project.json中添加xunitxunit.runner.dnx的引用。注意有些文章中可能误导你安装xunit.runner.aspnet或者xunit.runner.visualstudio,都是不需要的。添加这两个包之后,project.json会被自动添加上一个test的command。
  3. 编写Fact测试。写法和之前的xUnit写法没有两样。当然在DNX/ASP.NET 5中可能会需要一些技巧,后面我会集中分享一些使用心得。
  4. 从控制台运行测试。在正确配置dnx运行环境之后,可以通过在命令行输入dnx . test来运行测试。
  5. 编写Theory测试。xUnit中除了提供Fact测试外,也提供了Theory测试。前者总是应该成立,测试的是不可变的条件;后者只在某些条件下才会成立。
  6. 在Visual Studio中运行测试。由于xunit.runner.dnx这个包实际上已经包含了之前xunit.runner.visualstudio的代码,所以只要项目编译通过,在VS的Test Explorer中就可以显示出测试条目。

基本上,对于初学者,只要读懂了这篇文章,那么对于xUnit在DNX/ASP.NET 5中的基本使用是没有问题的。

原文地址:http://xunit.github.io/docs/getting-started-dnx

DNX/ASP.NET 5的xUnit入门向导的更多相关文章

  1. ASP.NET Core 1.0 入门——了解一个空项目

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  2. ASP.NET Core 之 Identity 入门(三)

    前言 在上一篇文章中,我们学习了 CookieAuthentication 中间件,本篇的话主要看一下 Identity 本身. 最早2005年 ASP.NET 2.0 的时候开始, Web 应用程序 ...

  3. [转]ASP.NET Core 之 Identity 入门(三)

    本文转自:http://www.cnblogs.com/savorboard/p/aspnetcore-identity3.html 前言 在上一篇文章中,我们学习了 CookieAuthentica ...

  4. ASP.NET Core 1.0 入门——Application Startup

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  5. [Solution] ASP.NET Identity(1) 快速入门

    本节将介绍: ASP.NET Identity简介 快速入门 扩展 ASP.NET Identity简介 身份管理在ASP.NET中存在很长世间了,ASP.NET 开发团队已经学会了很多从客户的反馈. ...

  6. ASP.NET SignalR 2.0入门指南

    ASP.NET SignalR 2.0入门指南 介绍SignalR ASP.NET SignalR 是一个为 ASP.NET 开发人员的库,简化了将实时 web 功能添加到应用程序的过程.实时Web功 ...

  7. Asp.Net Web API 2(入门)第一课

    Asp.Net Web API 2(入门)第一课   前言 Http不仅仅服务于Web Pages.它也是一个创建展示服务和数据的API的强大平台.Http是简单的.灵活的.无处不在的.你能想象到几乎 ...

  8. ROS_Kinetic_03 ROS入门向导

    ROS_Kinetic_03 ROS入门向导 每个人都有不同的学习习惯和爱好并针对不同的应用进行ROS相关设计与开发, 没有固定不变的学习模式,但以下的内容是通常都会用到的. 1. ROS基础教程 1 ...

  9. ASP.NET WebApi技术从入门到实战演练

    一.课程介绍 曾经有一位不知名的讲师说过这么一句名言: 一门RPC技术不会,那么千万万门RPC技术将都不会!在今天移动互联网的时代,作为攻城师的我们,谁不想着只写一套API就可以让我们的Web, An ...

随机推荐

  1. 2017/1/7 学习笔记 jar包,maven

    ① 关于tar,jar,war文件 tar是通用的另一种打包格式,为了部署到服务器时方便. jar是java app server识别的java部署格式,其实是Zip文件,只是内部的文件有规范. wa ...

  2. 【K8s】Kubernetes 最近正在看的资料

    中国移动Kubernetes多集群统一管理实践:  http://www.tuicool.com/articles/FrqQrqI#c-22517 一种新的进入容器的方式: WebSocket + D ...

  3. [20160731][转]JAVA当中变量什么时候需要初始化

    1. 对于类的成员变量,不管程序有没有显式的进行初始化,Java虚拟机都会先自动给它初始化为默认值. 默认值如下:             Boolean      false             ...

  4. strcpy C++实现

    #include <iostream> #include <assert.h> using namespace std; char *strcpy(char *strDest, ...

  5. response content-type json

    2015年11月3日 15:47:43 百度知道:ajax开发中在请求服务器端的响应时, 对于每一种返回类型 规范的做法是要在服务端指定response的contentType 常遇到下面的几种情况: ...

  6. eclipse 工作环境配置

    1.更换编辑颜色, http://eclipse-color-theme.github.io/update/ 下载离线安装包,解压缩 eclipse-color-theme-update-site\u ...

  7. linux expect

    1.首先确定是否安装expect /home/root> which expect /usr/bin/expect 如果没有安装,先安装一下 安装方法: 请参考 http://www.cnblo ...

  8. diff & pattch 命令

    基础知识 该命令的功能为逐行比较两个文本文件,列出其不同之处.它比comm命令完成更复杂的检查.它对给出的文件进行系统的检查,并显示出两个文件中所有不同的行,不要求事先对文件进行排序. 语法:diff ...

  9. code vs 1026 逃跑的拉尔夫

    1026 逃跑的拉尔夫  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 年轻的拉尔夫开玩笑地从一个小镇上偷走 ...

  10. PUTTY的使用教程

    Putty是一个优秀的,开源的SSH远程登录软件. 它不仅仅可以实现登录,还有很多高级功能. PuTTY is a free SSH, Telnet and Rlogin client for 32- ...