原文:Visual Studio 中的单元测试 UNIT TEST

注:本文系作者原创,可随意转载,但请注明出处。如实在不愿注明可留空,强烈反对更改原创出处。

TDD(Test-Driven Development) 测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。单元测试是最基本的测试步骤。位于整个产品开发流程V模型的最底部。
大致如图,在各种开发流程中RA&PSD完成后,无需底层基础,UAT方案即可完成,下面的步骤也一样。UT做为底层和CODING同样重要的步骤,是每个CODER必须掌握的基础。
RA( Requirement Analysis)  &
PSD ( Productive Specification Design)              UAT( User Acceptance Testing)
                          \                                                              /
                            \                                                          /
                              \                                                      /
FSD(Functional Specification Design)             SIT(System Integration Testing)
                                \                                                 /
                                  \                                             /
                                    \                                         /
                           Construction(Coding)         UT(Unit Tesing)
                                         \                              /
                                            \                         /
                                                \                   /
                                                  \              /
                                                     \         /
                                                        \    /
                                                          \/
在小量代码编写时,往往可以通过新建控制台项目(Console Application),新建网站项目(Web Form)等,在其中敲入测试代码来进行测试。一旦代码量及逻辑关系变得复杂,这种测试将难以展开,并且不具备可维护性。而且很多功能性的代码,不能完全脱离整个项目来实现。比如在某WEB项目中有一个类库,写了一些MODEL层的方法,为了验证方法的正确性,若要测试该方法,可能不得不引用项目中大量的模型,接口,以及库函数。等到编译可以通过了,却发现你必须登录才能调用该方法或者您所在的目录(Directory)根本不具备访问权限,于是又不得不去修改Authorization配置或者添加登录等方法。于是一层层下来,你的测试几乎涉及的项目的各个角落,而该测试方案又不具备高度的重用性。
下面我们以VS2012为例,来看一下如何在Visual Studio中进行单元测试。
1.首先,右键点击解决方案(Solution)弹出右键菜单(Context)。选择添加(Add) - 新项目(New Project), 在给出的模版中,选择 Visual C# - Test -Unit Test Project 如图。

2.得到模版如图。



3.在测试方法中(此处为默认的TestMethod1,一般修改为 需要测试的方法名+Test )添加自己需要测试的代码。不过在此之前,首先要引用需要测试的项目以及需要用到的类库。 此例中,我引用了微软的MVC4.0框架,以及需要测试的项目中的Controller。在此我测试该Controller的ProductCategories()方法。该方法返回一个ActionResult。测试代码中有3行,第一行用来实例化controller,第二行调用controller的方法。如果仅以该2行进行测试通过,则说明代码无语法问题,可以和其他各部分配合工作。第三行用了一个断言来检测方法返回的result是否为空。此处我断言它非空,如果为空,测试将会失败报错。
 
4。测试代码写好后, 即可点击上方菜单Test-Run- AllTests等,来进行测试。
 
测试完毕后。下方会产生结果列表。红色为未通过的TestCase。若想对其进行DEBUG,可右击红色的TestCase,选择Debug selected Tests。修改后,也可右击想要重新测试的TestCase,选择Run Selected Tests.

Visual Studio 中的单元测试 UNIT TEST的更多相关文章

  1. Visual Studio中UnitTesting单元测试模板代码生成

             在软件研发过程中,单元测试的重要性直接影响软件质量.经验表明一个尽责的单元测试方法将会在软件开发的某个阶段发现很多的Bug,并且修改它们的成本也很低.在软件开发的后期阶段,Bug的发 ...

  2. Python 在Visual studio 中做单元测试进行TDD开发

    Unit Tests Steve Dower edited this page on 14 Jul · 3 revisions Pages 38 Home Azure Remote Debugging ...

  3. visual studio中创建单元测试

    1 打开  工具--自定义 2 选择 上下文菜单--编辑器上下文菜单|代码窗口 3 在这里我们可以看到“创建单元测试”这个菜单了,将它移到运行测试菜单下面 4 关闭VS并重启 重启后再对着类名,点击右 ...

  4. Visual Studio 2013进行单元测试

    使用Visual Studio 2013进行单元测试--初级篇   1.打开VS2013 --> 新建一个项目.这里我们默认创建一个控制台项目.取名为UnitTestDemo 2.在解决方案里面 ...

  5. 在Visual Studio2015中使用单元测试

    所谓的单元测试(Unit Test),就是对软件的一些模块进行测试以检查其正确性和可靠性,这些模块可以是一个类或者是一个方法等.在Visual studio中,这十分容易实现. 打开Visual st ...

  6. 在Android Studio中进行单元测试和UI测试

    本篇教程翻译自Google I/O 2015中关于测试的codelab,掌握科学上网的同学请点击这里阅读:Unit and UI Testing in Android Studio.能力有限,如有翻译 ...

  7. Visual Studio 中指定自定义生成事件

    自定义生成事件打开方式 通过指定自定义生成事件,可以在生成开始之前或在它完成之后自动运行命令.在Visual Studio中通过右键项目->属性 进入项目属性菜单. 自定义生成事件的语法 生成事 ...

  8. 基于Visual Studio .NET2015的单元测试

    基于Visual Studio .NET2015的单元测试 1.    在Visual Studio .NET2015中创建任意项目. 2.    在某个公共类的公共方法的名称上面点击右键,选择“创建 ...

  9. 使用Visual Studio 2013进行单元测试

    使用Visual Studio 2013进行单元测试 1.打开VS2013 --> 新建一个项目.这里我们默认创建一个控制台项目.取名为UnitTestDemo 2.在解决方案里面新增一个单元测 ...

随机推荐

  1. [SQL Server优化]善用系统监视器,确定系统瓶颈

    原文:[SQL Server优化]善用系统监视器,确定系统瓶颈 来自: http://hi.baidu.com/solorez/blog/item/f82038fa0e71b78d9e51468c.h ...

  2. nginx+tomcat实现动静分离(转)

    本文设计的动静分离结构 在本文中,我们将静态资源放在 A 主机的一个目录上,将动态程序放在 B 主机上,同时在 A 上安装 Nginx 并且在 B 上安装 Tomcat.配置 Nginx,当请求的是 ...

  3. 写作Openwrt固件

    启动tftp软体.并设置文件夹的固件文件(Current Dircctory)和serverIP(Service interface).server指PC机.图.:                   ...

  4. [Tool]利用Advanced Installer建立x86/x64在一起的安装程式

    原文 [Tool]利用Advanced Installer建立x86/x64在一起的安装程式 之前使用InstallShield做安装程式时,如果要将程式放在Program Files的话,需要分别针 ...

  5. 3.Chrome数据同步服务分析--server一片

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGVlcjE2OA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...

  6. zoj 3537 Cake (凸包确定+间隔dp)

    Cake Time Limit: 1 Second      Memory Limit: 32768 KB You want to hold a party. Here's a polygon-sha ...

  7. C# 线程知识--使用Task执行异步操作

    在C#4.0之前需要执行一个复杂的异步操作时,只能使用CLR线程池技术来执行一个任务.线程池执行异步任务时,不知道任务何时完成,以及任务的在任务完成后不能获取到返回值.但是在C#4.0中引人了一个的任 ...

  8. Javascript学习4 - 对象和数组

    原文:Javascript学习4 - 对象和数组 在Javascript中,对象和数组是两种基本的数据类型,而且它们也是最重要的两种数据类型. 对象是已命名的值的一个集合,而数组是一种特殊对象,它就像 ...

  9. Kd-Tree算法原理和开源实现代码

    本文介绍一种用于高维空间中的高速近期邻和近似近期邻查找技术--Kd-Tree(Kd树). Kd-Tree,即K-dimensional tree,是一种高维索引树形数据结构,经常使用于在大规模的高维数 ...

  10. 大数据系列修炼-Scala课程03

    前言 今天上班看了很多关于前端js,jQuery.bootstrap.js以及springMVC看得迷迷糊糊的,毕竟以前很少去学习前端的技术,所有看得有点困,还好看得比较多,回家后也开始学习关于Sca ...