vs2013单元测试练习过程
1.打开VS2013 --> 新建一个项目。这里我们默认创建一个控制台项目。取名为UnitTestDemo
2.在解决方案里面新增一个单元测试项目。取名为UnitTestDemoTest
创建完毕后项目结构大概如下:

3.进入控制台项目UnitTestDemo的Program类,创建一个Add方法。
namespace UnitTestDemo
{
class Program
{
static void Main(string[] args)
{
} public static int Add(int num1, int num2)
{
return num1 + num2;
}
}
}
4.目的就是测试上面的Add方法运行是否正常,返回结果是否正确。
5.在单元测试项目中引用控制台项目,引用完毕后项目结构如下:

6.单元测试项目里面UnitTest1这个类的名字取得太难看了,我们把名字改为ProgramTest,表明这是在测试Program类。改完如下:
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting; namespace UnitTestDemoTest
{
[TestClass]
public class ProgramTest
{
[TestMethod]
public void TestMethod1()
{
}
}
}
7.上面就是VS为ProgramTest类默认生成的方法。可以看到ProgramTest具有一个【TestClass】特性,表明这是一个测试类。TestMethod1具有一个【TestMethod】特性,表明这是一个测试方法。
8.可以这样理解,一个方法必须具有【TestMethod】特性,且其所属的类具有【TestClass】特性,那么这个方法才会被VS承认为一个【单元测试方法】。
如果没有上面的两个特性中的一个,编译生成是没有任何问题的。但是VS不会把其作为一个【单元测试方法】。
9.“VS不把一个方法作为【单元测试方法】”是什么意思呢?
依次点击VS的菜单栏【测试】--> 【窗口】-->【测试资源管理器】,可以打开测试资源管理器。


10.测试资源管理器里面会显示当前解决方案里面的所有单元测试。说明白点就是这里只显示符合【第8点】要求的方法。
你可能会说,为什么上面的图里面什么都没显示,【TestMethod】特性和TestClass】特性现在不是都有吗?
原因是你还没有生成程序集。OK,按F6.就可以看到【测试资源管理器】中显示了【TestMethod1】:

11.我们要清楚我们创建单元测试的初衷:是用工具帮助我们测试软件的质量、稳定性、性能等等。【VS】在这里就充当了工具的作用。
12.回到命名的问题,很明显TestMethod这个名字太难看了,我们把它改成AddTest表示这是在测试Add方法。
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting; namespace UnitTestDemoTest
{
[TestClass]
public class ProgramTest
{
[TestMethod]
public void AddTest()
{
}
}
}
13.截止目前,我们已经建立了一个可以执行的测试框架,虽然没有起到什么作用,但是测试已经可以执行了。
执行测试的方法之一是:右键点击需要测试的【单元测试】方法的名称,选择运行:

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

执行单元测试的方法有很多,这些需要我们在不断的学习中去体会。
14.接下来我们做一点有意义的事情。改进AddTest方法:
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting; namespace UnitTestDemoTest
{
[TestClass]
public class ProgramTest
{
[TestMethod]
public void AddTest()
{
int num1 = 100;
int num2 = 200; Assert.AreEqual(Program.Add(num1, num2), 300);
}
}
}
在这之前,请把Program类的可见性改为internal或者Public。
15.“Assert”的意思是“断言”。所以“Assert.AreEqual(Program.Add(num1, num2), 300);”这句话的意思就是:我断言“Program.Add(num1, num2)”的结果就是300。
而断言的正确与否只需要通过测试工具测试即可。如果测试通过说明此断言是正确的,反之就说明这个测试失败了。
断言有很多种,包括上面普通的Assert,还有字符串断言,集合断言等等。
16.ok,运行测试可以看到测试通过。

vs2013单元测试练习过程的更多相关文章
- 谈vs2013单元测试感想
		
(1)安装篇:这个就不用多说啦,百度一个安装包进行安装. 之前下载过vs2013当时是抱着玩玩的心态,也没有安装成功,现在作为作业重新安装,并且进行单元测试.下面就是安装vs2013的具体过程以及我遇 ...
 - VS2013单元测试 的安装、创建与执行
		
1.要运行 vs2013单元测试 ,那么打开VS2013,选择工具-扩展和更新,搜索并安装Unit Test Generator. 如果不安装是不会出现Generate Unit Test的选项的,也 ...
 - VS2013单元测试及代码覆盖率分析--Xunit
		
1,Javaweb中有jmeter.jacoco.ant.badboy等集成测试代码覆盖率的方式,C#代码的覆盖率怎么测试呢?VS2013的IDE上本身并未集成测试的工具,以下讲解VS2013中C#代 ...
 - VS2013 单元测试(使用VS2013自带的单元测试)
		
本文是官方文档的学习笔记,官方文档在这里. 1.打开VS3013,随便建一个解决方案,比如叫:LearnUnitTest,建一个类库项目LearnUnitTest_Bank,该项目中添加一个BankA ...
 - 测试工具使用-Qunit单元测试使用过程
		
031302620 应课程要求写一篇单元测试工具的博客,但是暂时没用到java,所以不想使用junit(对各种类都不熟悉的也不好谈什么测试),原计划是要用phpunit,但是安装经历了三个小时,查阅各 ...
 - VS2013 单元测试
		
1.打开VS2013 --> 新建一个项目.这里创建一个c#控制台项目.取名为ccj_test1 2.进入控制台项目ccj_test1的Program类,创建一个add静态方法,并将progra ...
 - 使用Visual Studio 2013进行单元测试的过程与感想
		
首先是安装Visual Studio 2013这个软件,尽管安装过程不复杂,但是安装的时间实在是太长了,经过2个多小时的安装终于装完了. 由于时间紧凑,没来得及装语言包,于是,我用了原装的进行了单元测 ...
 - VS2013单元测试
		
原文地址:http://www.luacloud.com/2014/vs2013-unit-test-generator.html 下载地址:http://visualstudiogallery.ms ...
 - vs2013——单元测试&& 性能图
		
一.如何创建单元测试 下面这个博客中写的很详细: http://***/Article/11186 其中需要注意的是,首先新建工程项目,在此目录下Add单元测试项目,还需要在单元测试项目中引用被测试的 ...
 
随机推荐
- Arcgis Server 10.2默认服务端口号修改方法
			
本人安装Arcgis Server 10.2之后发布了一个地图服务,该服务默认使用的端口号是6080,本人使用的是教育网,使用教育网均能正常使用该服务,但是使用电信或者移动网络均不能正常访问该网站. ...
 - Oracle 11g r2 安装
			
Help Center:http://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm#i1011296 前提:linux需要安装图形化介 ...
 - tomcat与oracle关于8080端口的冲突
			
http://blog.csdn.net/baidu_24256693/article/details/44863935 由于电脑里同时安装了tomcat与oracle,所以8080的端口是冲突的. ...
 - SOAOffice和iWebOffice、NTKO的比较及其优势(转)
			
http://www.cnblogs.com/liping13599168/articles/1681465.html SOAOffice和iWebOffice.NTKO的比较及其优势 近年来,市场上 ...
 - OAF_文件系列8_实现OAF处理Excel的JXL包详解
			
写入/读取Excle,设置打印样式排版,锁定列与行,设置打印标题,给Excle加密. http://www.blogjava.net/xing5156/archive/2011/11/18/36422 ...
 - 停掉Linux固定的进程
			
ps -ef | grep php 查看进程ID,和信息 kill -s 9 1827 相关命令 ps -ef , ps -aux , pgrep php ,
 - IEnumerable<T>与IQueryable<T>以及.net的扩展方法
			
首先看看继承关系 public abstract class DbSet : DbQuery public abstract class DbQuery : IOrderedQueryable, IQ ...
 - windows下安装xgboost
			
Note that as of the most recent release the Microsoft Visual Studio instructions no longer seem to a ...
 - 04 Linux字符设备驱动
			
一.结构体 1. cdev 结构体 struct cdev { struct kobject kobj; /* 内嵌的 kobject 对象 */ struct module *owner; /*所属 ...
 - RealTimePerformanceDemoView
			
using System;using System.Diagnostics;using System.Timers;using System.Windows;using System.Windows. ...