[size=18][b]JUnit 入门[/b][/size]
1.JUnit
软件测试在软件投入使用前,对软件需求分析,设计规格说和编码进行最后的审查,这是软件质量保证的关键步骤。大量的数据表明,在软件测试的工作量往往占软件开发总工作的40%以上,而且成本不菲。所以软件测试砸整个开发过程中具有举足轻重的地位。
软件测试在软件开发过程中跨越了两个阶段:通常在编写每一个模块之后就要做必要的测试,这就叫单元测试,编码和单元测试属于软件开发过程中的同一阶段。在这个阶段之后,需要对软件系统进行各种综合的测试,即综合测试,他属于软件工程的测试阶段。
单元测试简介
软件测试是软件开发的重要组成部分但是很多开发者去忽略了这一点。他们认为测试应该有专门的测试人员来做。因为他们对自己写出的代码很“了解”,但他们却忽视了重要的一点,如果成员不对自己的代码进行测试,他们怎么知道自己写的代码会按照预期的方式运行呢?
单元测试就是开发者写一段测试代码来验证自己编写的一段代码运行是否正确。一般来说,一个单元测试用来判定在给定条件写某个函数的行为。例如,如果项测试一个类型的某个函数返回的对象是否是原来预期的对象。
那么为什么要进行单元测试呢?当编写完一段代码之后,系统会进行变异,然后开始运行。如果编译都没有通过,运行就更不可能了。
如果编译通过只能说明没有语法错误,但却无法保证这段代码在任何时候,都会按照自己的预期结果运行。所有的这些问题单元测试都可以解决。编写单元测试可以验证自己编写的代码是否按照预期运行。总之,单元测试可以使开发者的工作变得越来越轻松。
1. JUnit简介
JUnit的特性
JUnit是一个开放源代码的Java测试框架,用在编写和运行可重复的测试上。他是单元测试框架体系xUnit的一个实例,包括如下特性。
(1).用于测试期望结果的断言。
(2)用于共享共同测试数据的测试工具。
(3)用于方便地组织和运行测试的测试套件。
(4)星图形和文本的测试运行器。
JUnit的优点
(1) 可以使测试代码与产品代码分开。这个有利于代码的打包发布和测试代码的管理。
(2) 针对某一个类的测试代码,通过较少的改动使可以应用另一个类的测试。JUnit提供了一个编写测试类的框架,使测试代码的编写更加方便。
(3) 易于集成程序中的构建过程中。JUnit和Ant的结合开可以实施增量开发。
(4) JUnit的源代码是公开的,故而可以进行二次开发。
(5) JUnit具有很强的扩展性,可以方便地对JUnit进行扩展。
JUnit框架
JUnit一共7个包,其核心的包是junit.framework 和 junit.runner. framework包负责整个测试对象的构建,runner负责测试驱动。JUnit有四个重要的类,他们分别是TestSuite,TestCase,TestResult和TestRunner。另外,JUnit还包括Test接口和TestListenter类,前几个类属于junit.framework包,后一个类在不同的环境下是不同的。下面来简单介绍一些这几个类。
TestResult
TestResult 负责收集TestCase所执行的结果。它将结果分类,分为客户可预测的错误和没有预测的错误。它还将测试结果转发到TestListener处理。
TestRunner
TestRunner 是客户对象调用的起点,它负责对整个测试过程进行跟踪。它能够显示测试结果,并且报告测试的进度。
TestListenter
TestListenter 包含4个方法:addError() addFailuer() startTest() 和 endTest()。它是对测试结果的处理和对测试驱动过程的工作特征进行提取。
Test接口
Test 接口用来测试和收集测试结果。Test接口采用了Composite设计模式,它是单独的测试用例, 聚合的测试模式以及测试扩展的共同接口。它的countTestCase方法用来统计本次测试有多少个TestCase。在另一个方法run()中,参数TestResult作为测试结果的事例,run方法用于执行本次测试。
TestCase抽象类
TestCase抽象类用来定义测试中的固定方法。TestCase是Test接口的抽象实现,由于TestCase是一个抽象类,因此不能被实例化,只能被继承。其构造函数可以根据输入的测试名称来创建一个测试用例,提供测试名的目的在于方便测试失败是查找失败的测试用例。编写TestCase的子类用于测试时,需要注意以下事项。
(1) 一次测试纸测试一个对象,这样容易定位出错的位置。对于一个TestCase,只测试一个对象,一个测试方法只测试一个对象中的方法。
(2) 最好在assert函数中给出失败的原因,这样有助于查错。
(3) 在setUp和tearDown中的代码不应该与测试有关的,而应是全局相关的。
TestSuite 测试套件类
TestSuite 类负责组装多个TestCase。测试中可能包括了对测试类的多个测试,而每个测试可能就是一个测试用例,TestSuite负责收集组合这些测试,以便可以在一个测试中完成全部测试。
1.JUnit
软件测试在软件投入使用前,对软件需求分析,设计规格说和编码进行最后的审查,这是软件质量保证的关键步骤。大量的数据表明,在软件测试的工作量往往占软件开发总工作的40%以上,而且成本不菲。所以软件测试砸整个开发过程中具有举足轻重的地位。
软件测试在软件开发过程中跨越了两个阶段:通常在编写每一个模块之后就要做必要的测试,这就叫单元测试,编码和单元测试属于软件开发过程中的同一阶段。在这个阶段之后,需要对软件系统进行各种综合的测试,即综合测试,他属于软件工程的测试阶段。
单元测试简介
软件测试是软件开发的重要组成部分但是很多开发者去忽略了这一点。他们认为测试应该有专门的测试人员来做。因为他们对自己写出的代码很“了解”,但他们却忽视了重要的一点,如果成员不对自己的代码进行测试,他们怎么知道自己写的代码会按照预期的方式运行呢?
单元测试就是开发者写一段测试代码来验证自己编写的一段代码运行是否正确。一般来说,一个单元测试用来判定在给定条件写某个函数的行为。例如,如果项测试一个类型的某个函数返回的对象是否是原来预期的对象。
那么为什么要进行单元测试呢?当编写完一段代码之后,系统会进行变异,然后开始运行。如果编译都没有通过,运行就更不可能了。
如果编译通过只能说明没有语法错误,但却无法保证这段代码在任何时候,都会按照自己的预期结果运行。所有的这些问题单元测试都可以解决。编写单元测试可以验证自己编写的代码是否按照预期运行。总之,单元测试可以使开发者的工作变得越来越轻松。
1. JUnit简介
JUnit的特性
JUnit是一个开放源代码的Java测试框架,用在编写和运行可重复的测试上。他是单元测试框架体系xUnit的一个实例,包括如下特性。
(1).用于测试期望结果的断言。
(2)用于共享共同测试数据的测试工具。
(3)用于方便地组织和运行测试的测试套件。
(4)星图形和文本的测试运行器。
JUnit的优点
(1) 可以使测试代码与产品代码分开。这个有利于代码的打包发布和测试代码的管理。
(2) 针对某一个类的测试代码,通过较少的改动使可以应用另一个类的测试。JUnit提供了一个编写测试类的框架,使测试代码的编写更加方便。
(3) 易于集成程序中的构建过程中。JUnit和Ant的结合开可以实施增量开发。
(4) JUnit的源代码是公开的,故而可以进行二次开发。
(5) JUnit具有很强的扩展性,可以方便地对JUnit进行扩展。
JUnit框架
JUnit一共7个包,其核心的包是junit.framework 和 junit.runner. framework包负责整个测试对象的构建,runner负责测试驱动。JUnit有四个重要的类,他们分别是TestSuite,TestCase,TestResult和TestRunner。另外,JUnit还包括Test接口和TestListenter类,前几个类属于junit.framework包,后一个类在不同的环境下是不同的。下面来简单介绍一些这几个类。
TestResult
TestResult 负责收集TestCase所执行的结果。它将结果分类,分为客户可预测的错误和没有预测的错误。它还将测试结果转发到TestListener处理。
TestRunner
TestRunner 是客户对象调用的起点,它负责对整个测试过程进行跟踪。它能够显示测试结果,并且报告测试的进度。
TestListenter
TestListenter 包含4个方法:addError() addFailuer() startTest() 和 endTest()。它是对测试结果的处理和对测试驱动过程的工作特征进行提取。
Test接口
Test 接口用来测试和收集测试结果。Test接口采用了Composite设计模式,它是单独的测试用例, 聚合的测试模式以及测试扩展的共同接口。它的countTestCase方法用来统计本次测试有多少个TestCase。在另一个方法run()中,参数TestResult作为测试结果的事例,run方法用于执行本次测试。
TestCase抽象类
TestCase抽象类用来定义测试中的固定方法。TestCase是Test接口的抽象实现,由于TestCase是一个抽象类,因此不能被实例化,只能被继承。其构造函数可以根据输入的测试名称来创建一个测试用例,提供测试名的目的在于方便测试失败是查找失败的测试用例。编写TestCase的子类用于测试时,需要注意以下事项。
(1) 一次测试纸测试一个对象,这样容易定位出错的位置。对于一个TestCase,只测试一个对象,一个测试方法只测试一个对象中的方法。
(2) 最好在assert函数中给出失败的原因,这样有助于查错。
(3) 在setUp和tearDown中的代码不应该与测试有关的,而应是全局相关的。
TestSuite 测试套件类
TestSuite 类负责组装多个TestCase。测试中可能包括了对测试类的多个测试,而每个测试可能就是一个测试用例,TestSuite负责收集组合这些测试,以便可以在一个测试中完成全部测试。