本来以为很简单的一个问题,今天预计10分钟搞定,结果到下班还没弄出结果,单元测试运行的时候一直处于无反应状态,最后估计可能是我装的2010有问题,结果到家一试果然是有问题,有时软件就是这么神奇。

言归正传,本次作业的目的是让大家熟悉一下开发工具的安装和单元测试工具的使用。VSTS可以实现自动测试,这个说复杂也复杂,说简单也简单,简而言之就是编写一个测试程序的程序,通过输入自动判断输出是否与预想相符,并给出代码覆盖率等等一大堆统计数据,再详细的内容大家自行上网上查,这里只给出如何利用这一功能的简介。

1、工具安装,从Microsoft Visual Studio 2005版开始就已经提供了VSTS工具包,但是建议大家最好安装2010版以上的,原因嘛。。。反正有新的干嘛用旧的,具体安装过程这里就不介绍了,没有什么需要特殊配置的,基本上一直下一步即可。

2、创建一个类,这个类其实就是你要完成的某一个具体功能,如我们的第一个作业,这里我们用书上的例子,建一个类库,其实类库和我们以前用的函数库是一个意思,本身并不是一个可运行的系统,它提供一系列操作,完成相应功能 。

3、点击新建项目,这里我们建一个C#的类库。

4、点击确定后,进入代码编辑界面,这其实就是一个类,可以写下书中代码。

  namespace DemoUser
  {
    public class User
    {
      public User(string userEmail)
      {
        m_email = userEmail;
      }
      private string m_email;
    }
  }

5、这是一段简单的C#语言编写的类,namespace是命名空间,作用类似于java的包,但是有区别,具体大家自己百度之,这里只给出一个构建函数和一个私有变量。类创建完了,下面就可以为其创建单元测试,所谓单元测试顾名思义就是只测试一个功能函数或方法,可以有很多种方法,这里介绍一种比较方便的,其它方法大家自行查询网上资料。将鼠标定位到User类的构造方法中,然后点右键,弹出下图菜单,单击创建单元测试。

  6、在弹出的对话框中选择要测试的函数单击确定。

  7、输入新项目的名称,单击创建。

  8、这时在左侧或右侧的解决方案资源管理器中就会发现有一个新建项目。

  9、大家在UserTest.cs中可以发现系统已经自动为你的User构造方法创建了一个方法,这就是自动测试的含义了,注意这个方法的上面必须要有[Testmethod()]这条语句,并且可以像书中那样增加其它一些内容,具体自己上网查找。自动创建的语句一般是无法实现自动测试的,必须修改其中的一些内容,一般主要方法是初始化输入、创建实例、验证结果,具体如下面语句,按F6键编译。

  [TestMethod()]
  public void UserConstructorTest()
  {
    string userEmail = "zhanglsh@163.com"; // 初始化为适当的值
    User target = new User(userEmail); //为被测试对象创建用例
    Assert.IsTrue(target != null);//比较实际结果和期望结果
  }

  10、在菜单栏中查找:测试→窗口→测试列表编辑器。

  11、如果在菜单中找不到测试这一项说明你未安装相应的工具包,可以重新修复,在测试列表编辑器中选中要测试的项目,然后点击运行或调试选中的测试,即可完成测试操作。

  12、一般情况下在几秒后即可出现测试结果,如果你点击运行后发现系统一直在运行中并且没有任何反应,那么恭喜你估计和我一样系统安装的有问题,可以卸载重装一下试试,或者试着找一下解决办法,如果找到了一定告诉我。

  希望大家最好能把你的第一个项目作为测试对象,大家成功后一定像我这样把整个过程全部写到博客上,经验就是这么积累的,大家努力吧!

Microsoft Visual Studio 2010 VSTS单元测试指南的更多相关文章

  1. Microsoft Visual Studio 2013 VSTS单元测试指南

    安装vs2013时并未安装VSTS工具包,所以在工具栏:工具->拓展和更新   进行下载安装 vs13已经用了两年了,相比于之前老师推荐的vc6.0感觉要强出很多,刚上手时感觉比较困难,在使用一 ...

  2. Microsoft Visual Studio 2010中文版编译SQLlite3.7.0版

    作为一名教师,没有具体项目的开发,却喜欢尝鲜,不经意间开始追星了. 换了Win7,安装了Microsoft Visual Studio 2010中文版,7月22日SQLite发布了3.7.0版.当然想 ...

  3. win8 64位操作系统 Microsoft Visual Studio 2010在IIS上调试 “此任务要求应用程序具有提升的权限”等问题

    很少在IIS上调试程序,因系统原因,所以不得不在IIS上预览项目和调试项目(因为只能在IIS上预览项目才能看到项目里的数据). 1.附加到进程(注意附加到进程前必须预览项目) 2.选择调试项 需要注意 ...

  4. Microsoft Visual Studio 2010 遇到了异常,可能是由某个扩展导致的。 转载

    问题: 今天打开好久没用的Microsoft Visual Studio 2010 ,刚才创建了一个C++工程,错误就出现了. 只要在VS2010源码编辑器中输入一个字符,它就报错 ":Mi ...

  5. C++笔记001:Microsoft Visual Studio 2010软件的安装与建立第一个cpp文件

    原创笔记,转载请注明出处! 点击[关注],关注也是一种美德~ 我学习C++使用软件为Microsoft Visual Studio 2010. 首先,软件的安装包 链接:https://pan.bai ...

  6. Microsoft Visual Studio 2010(vs10)安装与使用

    安装1.下载软件: 云盘分享http://pan.baidu.com/s/1i4JL9GT 2.安装 打开Microsoft Visual Studio 2010目录,双击setup.exe ,运行 ...

  7. Microsoft Visual Studio 2010下log4cplus的安装,集成,测试

    原文:http://blog.csdn.net/eclipser1987/article/details/6904301 log4cplus是C++编写的开源的日志系统,功能非常全面,用到自己开发的工 ...

  8. Microsoft Visual Studio 2010导致系统C盘不断增大问题处理。

    一直用Microsoft Visual Studio 2010做开发,发现最近C盘空间是越来越小,一开始以为是IE或者一些系统补丁造成的临时文件,但是使用360,windows优化大师之类的软件都清过 ...

  9. vs2010下载Microsoft Visual Studio 2010 Express(vs2010中文版下载)速成官方合集正式版

    http://www.xiazaiba.com/html/1832.html VB.NET 2010 Express: 2KQT8-HV27P-GTTV9-2WBVV-M7X96VC++ 2010 E ...

随机推荐

  1. AX2012 审批流流转到已停用的域账号导致审批流停止

    AX 2012 中当审批流流转到某个节点时,如果在该节点的审批人的域账号被停用,审批流将会停止,会报如图的错误: 要解决这个问题,得修改标准功能,需要修改SysWorkflow和SysWorkflow ...

  2. 树莓派_360wifi2_佳能MP236打印机

    入手树莓派后一直没时间弄,设想用360wifi做无线网卡,也一直不得解,今天成功写下经验 本人刷的是官方系统,版本为3.12.28,首先更新系统内核,参考以下网址: http://groenholdt ...

  3. delphi 怎么获取工程版本号

    function GetApplicationVersion:String; // Added 取得程序版本号 var FileName:String; InfoSize,Wnd:DWORD; Ver ...

  4. 8天掌握EF的Code First开发系列之2 Code First开发系列之领域建模和管理实体关系

    本文出自8天掌握EF的Code First开发系列,经过自己的实践整理出来. 本篇目录 理解Code First及其约定和配置 创建数据表结构 管理实体关系 三种继承模式 本章小结 本人的实验环境是V ...

  5. Oracle Database 11G R2 标准版 企业版 下载地址(转)

    转自:http://blog.itpub.net/628922/viewspace-759245/ 不需要注册,直接复制到迅雷或其他下载软件中即可下载. oracle 11.2.0.3 下载地址: L ...

  6. Android之下拉刷新,上啦加载的实现(一)

    转载地址http://blog.csdn.net/leehong2005/article/details/12567757#t5 前段时间项目中用到了下拉刷新功能,之前在网上也找到过类似的demo,但 ...

  7. 关于 this 和 prototype 的理解

    1:this 的理解比较好的书是 <Javascript语言精粹> 平时我们全局写 var a = 1, 其实就是 window.a = 1; var f = function(){},  ...

  8. 三天没有写题了,罪过!--Hash Table Start

    (1)Island Perimeter 解题思路: 在矩阵上循环并记录岛(1)的个数;如果当前节点是岛,则检查其是否具有任何右邻居或下邻居,有的话邻居计数加1 ;岛的周长结果为islands * 4 ...

  9. __iter__

    [__iter__] 如果一个类想被用于for ... in循环,类似list或tuple那样,就必须实现一个__iter__()方法,该方法返回一个迭代对象,然后,Python的for循环就会不断调 ...

  10. [原创]Matlab获取当前时间信息

    本文主要介绍下Matlab中如何获取当前时间的一些方法. 基本变量date.now.clock date 按照日期字符串返回当前系统时间 now 按照连续的日期数值返回当前系统时间 clock按照日期 ...