用VSTS写单元测试                          

许多应用程序都会用到“用户”类型,今天我要用的是ConsoleApplication1名字

1.打开VS2013 --> 新建一个项目。这里我们默认创建一个控制台项目。取名为ConsoleApplication1

2.在解决方案里面新增一个单元测试项目。取名为默认ConsoleApplication1

创建完毕后项目结构大概如下:

3.进入控制台项目UnitTestDemo的Program类库,创建一个Add方 UnitTestDemo

{
public class User
{
public void User(string userEmail)
{
m_emaile=userEmaile; } private string
m_emaile ;//user emaile as user as user id
}
}

4.我们的出现“New Test Project”弹窗,目的就是单元测试方法运行。

5.在单元测试项目后,注意到中,出现三个新的文,引用控制台项目,引用完毕后项目结构如下:

6.单元测试项目里面UnitTest1这个类的名字取得太难看了,我们把名字改为ProgramTest,表明这是在测试Program类。改完如下:

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting; namespace UnitTestDemoTest
{
[TestClass]
public class ProgramTest
{
[TestMethod]
public void TestMethod1()
{
}
}
}

7.一个好的测试方法。应该在最基本的功能,参数上验证程序的正确性,单元测试应该测试最基本的单元,在此基础上,可以测试一些系统中最基本的功能点。

系统中最基本的功能点

8.可以这样理解,一个方法必须具有TestMethod特性,且其所属的类具有TestClass特性,那么这个方法才会被VS承认为一个单元测试方法。

如果没有上面的两个特性中的一个,编译生成是没有任何问题的。但是VS不会把其作为一个单元测试方法。

9.依次点击VS的菜单栏测试--> 窗口-->测试资源管理器,可以打开测试资源管理器。

10.测试资源管理器里面会显示当前解决方案里面的所有单元测试。说明白点就是这里只显示符合要求的方法。

你可能会说,为什么上面的图里面什么都没显示,TestMethod特性和TestClass特性现在不是都有吗?

原因是你还没有生成程序集就可以看到测试资源管理器中显示了TestMethod1:

11.我们要清楚我们创建单元测试的初衷:是用工具帮助我们测试软件的质量、稳定性、性能等等。VS在这里就充当了工具的作用。

12.回到命名的问题,很明显TestMethod这个名字太难看了,我们把它改成AddTest表示这是在测试Add方法。

 UnitTestDemoTest()
{
[TestClass]
public class ProgramTest
{
[TestMethod]
public void AddTest()
{
}
}
}

13.截止目前,我们已经建立了一个可以执行的测试框架,虽然没有起到什么作用,但是测试已经可以执行了。

执行测试的方法之一是:右键点击需要测试的【单元测试】方法的名称,选择运行:

运行测试之后,可以在测试资源管理器中查看测试的结果:

执行单元测试的方法有很多,这些需要我们在不断的学习中去体会。

14.接下来我们做一点有意义的事情。改进AddTest方法:

if(!m_email.Contains("@"))
{ throw new ArgumentException(); //抛
}

新建单元测试在解决方案上新建项目-》托管测试项目在需要进行c语言测试运行测试可以看到测试通过。

17.最后,注意在单元测试中,VSTS自动为我们生成了测试的骨架,如果还在使用***.Inconclusive。表明这是个未经测试的。详情参考如上。

VSTS写单元测试的更多相关文章

  1. 使用VSTS进行单元测试练习

    本次作业要求:练习教科书第22~25页单元测试练习,要求自行安装Visual Studio开发平台,版本至少在2010以上,要求把程序安装过程和练习过程写到博客上,越详细越好,要图文并茂,没有书的同学 ...

  2. 单元测试er——为什么真的真的要写单元测试

    优点 为什么很多技术或者知识要说优点?因为有些道理看着很简单,大家表面上都觉得对,但是做的时候又不去做或者做不到.其中有一个很重要原因是骨子里或者潜意识并没有真实觉得这是对的,一旦想去做的时候同时会冒 ...

  3. 为什么从前那些.NET开发者都不写单元测试呢?

    楔子 四年前我虽然也写了很多年代码,由于公司虽然规模不小,却并非一家规范化的软件公司,因此在项目中严格意义上来说并没有架构设计.也不写单元测试,后来有幸加入了一家公司,这家公司虽然也是一家小公司,但是 ...

  4. 如何为 Vue 项目写单元测试

    https://www.w3ctech.com/topic/2052 如何为 Vue 项目写单元测试 前端工程 明非 2017-07-18 4685 访问 1 分享 微信分享 译者:明非 链接:htt ...

  5. 为什么不针对internal接口写单元测试?

    测试驱动的开发(TDD,Test Driven Development)的核心理念,是要使得重构(refactoring)更为有效,而不是创建更多的测试. 对一个有着长生命周期的项目来讲,在它的第一个 ...

  6. 【快学springboot】在springboot中写单元测试[Happyjava]

    前言 很多公司都有写单元测试的硬性要求,在提交代码的时候,如果单测通不过或者说单元测试各种覆盖率不达标,会被拒绝合并代码.写单元测试,也是保证代码质量的一种方式. junit单元测试 相信绝大多数的J ...

  7. 【快学springboot】在springboot中写单元测试

    前言 很多公司都有写单元测试的硬性要求,在提交代码的时候,如果单测通不过或者说单元测试各种覆盖率不达标,会被拒绝合并代码.写单元测试,也是保证代码质量的一种方式. junit单元测试 相信绝大多数的J ...

  8. 如何用googletest写单元测试

    http://www.uml.org.cn/c++/201203293.asp googletest是一个用来写C++单元测试的框架,它是跨平台的,可应用在windows.linux.Mac等OS平台 ...

  9. 用Grails写单元测试

    新的领域,多练练,这样写出的程序,确实坚固些. 也要理解集成测试与数据库相关,单元测试与类方法有关. 如果测试文件没有建立,按如下操作: Unit tests are generated automa ...

随机推荐

  1. Spring Boot Actuator RCE

    来看一下IDEA如何调试Spring Boot 先在https://github.com/artsploit/actuator-testbed下载源码 如下命令就能通过maven环境启动 mvn in ...

  2. Azkaban学习之路 (一)Azkaban的基础介绍

    一.为什么需要工作流调度器 1.一个完整的数据分析系统通常都是由大量任务单元组成: shell 脚本程序,java 程序,mapreduce 程序.hive 脚本等 2.各任务单元之间存在时间先后及前 ...

  3. C#启动另一个应用程序并传参数

    第一个程序: try { ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = "Windows ...

  4. CentOS7.5搭建Flask环境python3.6+mysql+redis+virtualenv

    wget安装环境装备 yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncur ...

  5. Docker技术入门与实战 第二版-学习笔记-6-仓库

    仓库(Repository)是集中存放镜像的地方 一个容易混淆的概念是注册服务器(Registry). 实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像. ...

  6. MP实战系列(十三)之批量修改操作(前后台异步交互)

    MyBatis的批量操作其实同MyBatis基本是一样的.并无多大区别,要说区别,除了封装的方法之外,主要就是注解方面的区别,比如@TableId.@TableField.@TableName等等区别 ...

  7. 理解C#的Lock语法意义

    一. 为什么要lock,lock了什么? 当我们使用线程的时候,效率最高的方式当然是异步,即各个线程同时运行,其间不相互依赖和等待.但当不同的线程都需要访问某个资源的时候,就需要同步机制了,也就是说当 ...

  8. centos7上svn安装

    svn安装  yum install subversion 查看svn安装的版本  svnserve --version新建svn目录  mkdir /opt/svn  建立版本库目录  mkdir ...

  9. day68

    昨日回顾:1 虚拟环境 -1 pycharm里创建 -2 用命令串讲2 视图层: 1 Request对象---GET,POST,method,body,FILES,META,path(只是路径),ge ...

  10. 详细解读大数据分析引擎Pig&PigLatin语句

    Pig 一.Pig的介绍: Pig由Yahoo开发,主要应用于数据分析,Twitter公司大量使用Pig处理海量数据,Pig之所以是数据分析引擎,是因为Pig相当于一个翻译器,将PigLatin语句翻 ...