`
zyjwy02
  • 浏览: 141192 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
阅读更多

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负责收集组合这些测试,以便可以在一个测试中完成全部测试。

分享到:
评论

相关推荐

    JUnit入门及简单使用

    JUnit 是一个广泛使用的开源Java测试框架,由Erich Gamma和Kent Beck开发,主要用于进行回归测试,确保代码在修改后仍能按预期工作。JUnit测试主要是白盒测试,因为程序员对被测试的软件内部结构有深入理解,能够...

    jUnit入门教程 jUnit教程

    【jUnit入门教程 - jUnit教程】 jUnit是一款广泛应用于Java编程语言的单元测试框架,它使得开发者能够方便地编写和执行针对代码功能的测试用例。本教程旨在为初学者提供一个jUnit的基础入门指南,帮助理解如何利用...

    junit 入门培训ppt

    本文将深入探讨JUnit入门培训的关键概念和技术。 首先,我们要理解什么是Test Driven Development(TDD),即测试驱动开发。TDD是一种软件开发方法论,它提倡在编写实际业务代码之前先编写测试。通过这种方式,...

    Junit入门练习代码

    本资源“Junit入门练习代码”旨在帮助初学者掌握JUnit的基本概念和使用方法,通过实践来加深理解。下面我们将深入探讨JUnit的相关知识点。 1. **JUnit简介**:JUnit是Java语言中的一个开源测试框架,由Ernst Leiss...

    Junit入门培训资料(断言相关)

    ### Junit入门培训资料(断言相关):深入解析与应用 #### Junit概述与重要性 JUnit,作为由Kent Beck和Erich Gamma共同开发的开源Java测试框架,已成为Java开发人员进行单元测试的首选工具。它不仅是Java编程语言...

    JUnit入门资料合集

    这个“JUnit入门资料合集”看起来包含了多个部分,涵盖了从软件架构到内部机制,再到讲课文档的全面教程。 1. **软件架构**: JUnit的架构基于设计模式,主要是工厂模式和装饰器模式。它通过`Test`接口定义了测试...

    Junit入门及应用

    【JUnit入门及应用】 JUnit是Java开发者常用的单元测试框架,它的主要目的是为了编写和执行可重复的测试,确保代码的质量和稳定性。作为一个开源项目,JUnit是xUnit家族的一员,适用于进行白盒测试和回归测试。 **...

    JUnit入门

    ### JUnit入门详解 #### 一、JUnit简介 JUnit是一个流行的Java单元测试框架,它提供了一种简单有效的方式来编写和运行测试用例。对于初学者来说,了解JUnit的基本概念和使用方法是非常重要的。 #### 二、JUnit的...

    Junit 入门与提高实例代码

    《Junit 入门与提高实例代码》是针对Java开发者,特别是J2EE环境下的测试工程师的一份宝贵资源。这份资料旨在帮助初学者快速掌握Junit的使用,并通过实例提升测试技能,确保J2EE应用的质量和稳定性。下面将详细阐述...

    Junit入门实验Junit入门实验

    这个"Junit入门实验"旨在帮助初学者理解和掌握JUnit的基本概念和使用方法。通过这个实验,你将学习如何设置测试环境,创建测试类,编写测试用例,并理解断言和异常处理。 1. **安装与引入JUnit** 在开始之前,你...

    JUnit 入门教程

    ### JUnit入门教程知识点概述 #### 一、JUnit简介 - **定义**:JUnit是一种针对Java编程语言的单元测试框架。它在测试驱动开发(TDD)的发展中扮演了重要角色,并且是XUnit家族的一员,这个家族起源于JUnit。 - **...

    JUnit入门,非常实用!

    JUnit 是一个广泛使用的Java编程语言的单元测试框架,它的主要目标是帮助开发者编写可重复运行的测试用例,以确保代码的正确性和稳定性。JUnit 的出现源于Erich Gamma和Kent Beck两位大师,他们是面向对象设计模式和...

    junit入门资料

    总之,这个"junit入门资料"应该包含了一系列的实践示例和讲解材料,帮助你从零开始学习JUnit,逐步掌握单元测试的技巧和最佳实践,从而提升你的Java编程能力。通过深入学习和实践,你将能够有效地利用JUnit进行高...

Global site tag (gtag.js) - Google Analytics