图解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 ...
随机推荐
- 爬取乌云上所有人民币和乌云符号的漏洞(python脚本)
import httplib from HTMLParser import HTMLParser import urlparse import urllib from bs4 import Beaut ...
- 【运维技术】VM虚拟机上使用centos7安装docker启动gogs服务教程【含B站视频教程】
VM虚拟机上使用centos7安装docker启动gogs服务视频教程 BiliBili视频教程链接飞机票,点我 使用VMware Workstation安装Centos7 MinMal系统 第一步: ...
- Sublime Text 3 配置Python3.x
Sublime Text 3 配置Python3.x 一.Package Control 安装: 1,通过快捷键 ctrl+` 或者 View > Show Console 打开控制台,然后粘贴 ...
- UVA 11019 Matrix Matcher(二维hash + 尺取)题解
题意:在n*m方格中找有几个x*y矩阵. 思路:二维hash,总体思路和一维差不太多,先把每行hash,变成一维的数组,再对这个一维数组hash变成二维hash.之前还在想怎么快速把一个矩阵的hash ...
- How does flyway sort version numbers?
https://stackoverflow.com/questions/19984397/how-does-flyway-sort-version-numbers In one word: numer ...
- 使用 reshape2 重塑数据框
我们已经学习了如何筛选.排序.合并和汇总数据框.这些操作只适用于行和列,然而有时候我们需要做一些更复杂的事情.例如,下面这段代码读取了一个数据集,包含了两种产品不同日期的质量和耐久性的测试结果:toy ...
- c# 如何调用python脚本
1.net4.5: http://www.jb51.net/article/84418.htm 2.net4.0: https://www.cnblogs.com/shiyingzheng/p/605 ...
- cf812B 搜索
B. Sagheer, the Hausmeister time limit per test 1 second memory limit per test 256 megabytes input s ...
- 唯一索引 && 主键索引
唯一索引唯一索引不允许两行具有相同的索引值. 如果现有数据中存在重复的键值,则大多数数据库都不允许将新创建的唯一索引与表一起保存. 当新数据将使表中的键值重复时,数据库也拒绝接受此数据.例如,如果在 ...
- 流程设计器jQuery + svg/vml(Demo1 - 构建设计器UI界面)
之前用Silverlight实现过一个流程设计器(Demo),使用起来不是很方便.打算参考GooFlow,结合自己对工作流的理解,用jQuery改造实现一个,力求简单实用. 第一步是要构建设计器的UI ...