图解VS2005之单元测试
据说VS2005里即提供了测试功能,可是对于像我或者我们这样的开发人或团队真还没有进化到用测试这块。一直以来都是手工测试或等到用户发现问题。今天在网上找了一个介绍单元测试的WORD文档,按里面说的做了一下,现将过程记录如下。(非常简单的例子,希望大家不要扔鸡蛋,唉·#%·#¥·#·#¥·#¥)
1、准备要测试的方法

2、创建测试

选择此项后DOT NET会利用反射机制列出程序集信息(有点慢,不知道是不是机器原因):

下图是设置按钮对应的对话框,在里面可以指定类名什么的。无视确定,输入测试项目名称即可,会创建一系列文件,还有一个TXT文件,没什么用,当然你也可以仔细看看。

3、查看测试类

4、修改测试方法,为其赋值。改后如下:

5、执行测试
在“public void addTest()”上点右键执行“运行测试”会打开测试执行窗口,并显示过程与结果。

在此窗口中可以看到调试按钮,当测试的方法比较复杂时或想了解测试过程时,可在测试代码中加入断点,然后点测试结果窗口的调试按钮进行跟踪调试。

通过上述方法即可实现一个简单的测试。但有个问题是如果我们要测试的数据非常多,不可能一次次停掉程序修改参数再执行测试。我们可以将数据放在数据库中,或是利用数据库的数据来进行测试。
6、连接数据库,创建测试数据

通过服务器资源管理器,连接到SQL SERVER 创建了一个名为AddTestData的数据表。其中a,b为要测试函数的参数。c为预期结果。创建完成,填入数据如下:

7、将测试数据与测试用例关联
打开测试视图

选择测试视图中的用例,然后在属性窗口中设置以下属性。

连接串就不用说了吧,连到刚才指定的数据库的字符串,表名称用“AddTestData”,访问方法选默认的Sequential,顺序,当然如果数据表中的数据太多或没有必要全测试时,可以在此选择随机Random
修改测试用例

其实上边的枚举可以不用的,直接指定“0,1,2”就行,但我看到的文章里是这样写的,就照着写下来了。经过这样的改写后(注意代码中的数据连接),
8、执行连接数据库的测试
与上边的测试是一样的,启动测试。查看结果:

未通过?有一个未通过,不要慌,是因为我在测试数据中有个期望结果故意写错了。
双击未通过的行,可以打开如下信息:

这样更有利于我们查找问题的原因。
9、代码测试覆盖率
这个功能找了半天好不容易找到,默认是不开启的,需手动开启。

这个文件是在创建测试项目时自动添加的。在其上面双击会弹出一个对话框:

在此对话框中选择代码覆盖率项,在右侧选中要检测的项目,最后点应用、关闭。
在测试结果窗口点击“显示代码覆盖率着色”按钮。当然如果你不点的话,可以在结果中看到覆盖情况,但不会直观地看到哪些代码被覆盖。

好了,一个简单的单元测试应该就是这样吧!
出处:http://blog.csdn.net/anyqu/article/details/7453918
个人感觉数据库配置测试数据还是比较有用的,可以方便测试大量的数据,并且不需要修改代码,也不需要编译。
图解VS2005之单元测试的更多相关文章
- Java开发工具IntelliJ IDEA单元测试和代码覆盖率图解
		
原文 http://www.cnblogs.com/xiongmaopanda/p/3314660.html Java开发工具IntelliJ IDEA使用教程:单元测试和代码覆盖率 本文将展示如何使 ...
 - 图解安装CLion编写程序并进行单元测试
		
我对JetBrains公司的IDE情有独钟,于是这里使用的IDE是CLion,CLion是以IntelliJ为基础,专为开发C及C++所设计的跨平台IDE,可以在Windows.Linux及MacOS ...
 - IntelliJ IDEA单元测试和代码覆盖率图解
		
转载:http://blog.csdn.net/u011872919/article/details/11566713 本文将展示如何使用IntelliJ IDEA开发单元测试和分析覆盖率. 1 创建 ...
 - Nunit NMock Ncover单元测试
		
Nunit中如何进行事务性单元测试 单元测试要求:单元测试方法并不真正去变更数据库,也就是说单元测试不依赖于数据库中的数据.那我们如何解决执行单元测试方法后,不变更数据库中数据呢? 一般的解决方案 ...
 - 为WPF项目创建单元测试
		
原文作者: 周银辉 来源: 博客园 原文地址:http://www.cnblogs.com/zhouyinhui/archive/2007/09/30/911522.html 可能你已发现一个问题, ...
 - C#单元测试,带你入门
		
注:本文示例环境 VS2017 XUnit 2.2.0 单元测试框架 xunit.runner.visualstudio 2.2.0 测试运行工具 Moq 4.7.10 模拟框架 为什么要编写单元测试 ...
 - Java单元测试初体验(JUnit4)
		
什么是单元测试 我们在编写大型程序的时候,需要写成千上万个方法或函数,这些函数的功能可能很强大,但我们在程序中只用到该函数的一小部分功能,并且经过调试可以确定,这一小部分功能是正确的.但是,我们同时应 ...
 - C#单元测试,带你快速入门
		
注:本文示例环境 VS2017 XUnit 2.2.0 单元测试框架 xunit.runner.visualstudio 2.2.0 测试运行工具 Moq 4.7.10 模拟框架 为什么要编写单元测试 ...
 - 【转】C#单元测试,带你快速入门
		
[转]C#单元测试,带你快速入门 注:本文示例环境 VS2017 XUnit 2.2.0 单元测试框架 xunit.runner.visualstudio 2.2.0 测试运行工具 Moq 4.7.1 ...
 
随机推荐
- Java  IO的Reactor模式
			
1. Reactor出现的原因 Reator模式是大多数IO相关组件如Netty.Redis在使用时的IO模式,为什么需要这种模式,如何设计来解决高性能并发的呢? 最最原始的网络编程思路就是服务 ...
 - StarUML激活
			
感谢 http://blog.csdn.net/mergades/article/details/46662413 1,打开对应 mac版本的安装包位置,在对应目录/Applications/Sta ...
 - 项目管理工具- Maven
			
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3. ...
 - pyDay16
			
内容来自廖雪峰的官方网站. 1.Python内建的filter()函数用于过滤序列. 2.和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函数 ...
 - Mac下将C程序创建为动态链接库再由另一个C程序调用
			
写C的时候需要调用之前的一个C程序,想用动态链接库的方式.Mac下的动态链接库是dylib,与Linux下的.os或Windows下的.dll不同.由于之前没有接触过,所以翻了大量的博客,然而在编译过 ...
 - #include <ntifs.h>出现PEPROCESS redefinition问题处理
			
转载:http://blog.csdn.net/ytfrdfiw/article/details/23334297 如果在自己的程序中,即包含ntddk.h和ntifs.h的时候,编译的时候会出现如下 ...
 - [kata](5kyu) 约瑟夫战死排序(排列)
			
之前一直不懂,今天百度了下,发下kyu是级别的意思,dan是段的意思,级别数值越小越强,段数数值越大越强. 原题 https://www.codewars.com/kata/josephus-per ...
 - Tensorflow1.5.0+cuda9.0+cudnn7.0+gtx1080+ubuntu16.04
			
目录 Tensorflow1.5.0+cuda9.0+cudnn7.0+gtx1080+ubuntu16.04 0. 前记 1. 环境说明 2. 安装GTX1080显卡驱动 3. CUDA 9.0安装 ...
 - HDU 4183 Pahom on Water(最大流)
			
https://vjudge.net/problem/HDU-4183 题意: 这道题目的英文实在是很难理解啊. 给出n个圆,每个圆有频率,x.y轴和半径r4个属性,每次将频率为400的圆作为起点,频 ...
 - UVa 10054 项链(欧拉回路)
			
https://vjudge.net/problem/UVA-10054 题意:有一种由彩色珠子连接成的项链.每个珠子的两半由不同颜色组成.相邻两个珠子在接触的地方颜色相同.现在有一些零碎的珠子,需要 ...