单元测试基础知识

发表于:2009-12-29来源:作者:点击数: 标签:
单元测试基础知识 单元测试工具 前言 本文是阅读了《单元测试之道》一书后的笔记,也是公司安排本人进行单元测试培训的材料,原文是一个Powerpoint,故修改了下,并针对Visual studio 2005自带的单元测试做的一个整理,将其奉献出来,目的是供需要了解和学习

        单元测试基础知识   单元测试工具

  前言

  本文是阅读了《单元测试之道》一书后的笔记,也是公司安排本人进行单元测试培训的材料,原文是一个Powerpoint,故修改了下,并针对Visual studio 2005自带的单元测试做的一个整理,将其奉献出来,目的是供需要了解和学习单元测试的朋友们阅读。如有错误望指出。

  什么是单元测试?

  单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。例如,你可能把一个很大的值放入一个有序list 中去,然后确认该值出现在list 的尾部。或者,你可能会从字符串中删除匹配某种模式的字符,然后确认字符串确实不再包含这些字符了。

  执行单元测试,是为了证明某段代码的行为确实和开发者所期望的一致。

  为什么需要单元测试?

  当编写项目的时刻,如果我们假设底层的代码是正确无误的,那么先是高层代码中使用了底层代码;然后这些高层代码又被更高层的代码所使用,如此往复。当基本的底层代码不再可靠时,那么必需的改动就无法只局限在底层。虽然你可以修正底层的问题,但是这些对底层代码的修改必然会影响到高层代码。于是,一个对底层代码的修正,可能会导致对几乎所有代码的一连串改动,从而使修改越来越多,也越来越复杂。从而使整个项目也以失败告终。

  而单元测试的核心内涵:这个简单有效的技术就是为了令代码变得更加完美。

  什么是断言

  Assertion(断言),它是一个简单的方法调用,用于判断某个语句是否为真。

  例如:

  public void IsTrue(bool condtion){

  if(!condition) abort();

  }

  应用则为:

  int a=2;

  IsTrue(a==2);

  还可以编写更多的特定数据类型的断言。

  计划你的单元测试

  当我们编写了一个如下的函数,它用于查找list中的最大值:static int Largest(int[] list);

  所能想到的测试如下:

clearcase/" target="_blank" >cccccc; PADDING-BOTTOM: 0cm; BORDER-LEFT: black 1pt solid; WIDTH: 213.05pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid" vAlign=top width=284>

MILY: '微软雅黑','sans-serif'">输入

预期结果

7,8,9

9

8,9,7

9

9,7,8

9

7,9,8,9

9

1

1

-9,-8,-7

-7

null

Exception

  创建单元测试

  在解决方案资源管理器中右击某个测试项目,或在 Visual Studio 代码编辑器中,右击要测试的命名空间、类或方法并选择“创建单元测试”。

原文转自:http://www.ltesting.net