`
yanaicheng
  • 浏览: 4958 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

junit使用小结

阅读更多
junit使用小结
在使用XP进行开发的过程,unit test是必不可少的环节。作为unit test,junit是首选的工具。本文从使用目的、如何使用、以及使用中需要考虑的问题,简略描述了junit的基本用法。 使用目的 junit是java中书写unit test的framework,目前一些流行的unit test工具大都都是在junit上扩展而来的。目前它的版本是junit3.8.1,可以从www.junit.org上下载。 用法 1. 基本使用步骤,Junit的使用非常简单,它的基本使用步骤: - 创建,从junit.framework.TestCase派生unit test需要的test case - 书写测试方法,提供类似于如下函数签名的测试方法: public void testXXXXX(); - 编译,书写完test case后,编译所写的test case类 - 运行,启动junit test runner,来运行这个test case。 Junit提供了2个基本的test runner:字符界面和图形界面。启动命令分别如下: a 图形界面: java junit.swingui.TestRunner XXXXX b 字符界面: java junit.textui.TestRunner XXXXX 2. 使用例子: import junit.frmework.TestCase; public class TestSample extends TestCaset{ public void testMethod1(){ assertTrue( true); } } 3. setUp与tearDown,这两个函数是junit framework中提供初始化和反初始化每个测试方法的。setUp在每个测试方法调用前被调用,负责初始化测试方法所需要的测试环境;tearDown在每个测试方法被调用之后被调用,负责撤销测试环境。它们与测试方法的关系可以描述如下: 测试开始 -> setUp -> testXXXX -> tearDown ->测试结束 4. 使用例子: import junit.frmework.TestCase; public class TestSample extends TestCaset{ protected void setUp(){ //初始化…… } public void testMethod1(){ assertTrue( true); } potected void tearDown(){ //撤销初始化…… } } 5. 区分fail、exception。 - fail,期望出现的错误。产生原因:assert函数出错(如assertFalse(true));fail函数产生(如fail(……))。 - exception,不期望出现的错误,属于unit test程序运行时抛出的异常。它和普通代码运行过程中抛出的runtime异常属于一种类型。 对于assert、fail等函数请参见junit的javadoc。 6. 使用例子: import junit.frmework.TestCase; public class TestSample extends TestCaset{ protected void setUp(){ //初始化…… } public void testMethod1(){ …… try{ boolean b= …… assertTrue( b); throw new Exception( “This is a test.”); fail( “Unable point.”); //不可能到达 }catch(Exception e){ fail( “Yes, I catch u”); //应该到达点 } …… } potected void tearDown(){ //撤销初始化…… } } 7. 组装TestSuite,运行更多的test。在junit中,Test、TestCase和TestSuite三者组成了composiste pattern。通过组装自己的TestSuite,可以完成对添加到这个TestSuite中的所有的TestCase的调用。而且这些定义的TestSuite还可以组装成更大的TestSuite,这样同时也方便了对于不断增加的TestCase的管理和维护。 它的另一个好处就是,可以从这个TestCase树的任意一个节点(TestSuite或TestCase)开始调用,来完成这个节点以下的所有TestCase的调用。提高了unit test的灵活性。 8. 使用例子: import junit.framework.Test; import junit.framework.TestSuite; public class TestAll{ public class TestAll{ //定义一个suite,对于junit的作用可以视为类似于java应用程序的main。 public static Test suite(){ TestSuite suite = new TestSuite("Running all tests."); suite.addTestSuite( TestCase1.class); suite.addTestSuite( TestCase2.class); return suite; } } 运行同运行单独的一个TestCase是一样的,参见step 1 “运行”。 9. 使用Ant junit task。我们除了使用java来直接运行junit之外,我们还可以使用junit提供的junit task与ant结合来运行。涉及的几个主要的ant task如下: - ,定义一个junit task - ,位于中,运行多个TestCase - ,位于中,运行单个TestCase - ,位于中,定义一个测试结果输出格式 - ,定义一个junitreport task - ,位于中,输出一个junit report 具体的语法请参见相关文档。 10. 使用例子: 检查表 junit的使用并不很难,然而要书写一个好的TestCase却并非易事。一个不好的TestCase往往是既浪费了时间,也起不了实际的作用。相反,一个好的TestCase,不仅可以很好的指出代码中存在的问题,而且也可以作为代码更准确的文档,同时还在持续集成的过程中起非常重要的作用。在此给出书写TestCase时需要注意的几点: - 测试的独立性:一次只测试一个对象,方便定位出错的位置。这有2层意思:一个TestCase,只测试一个对象;一个TestMethod,只测试这个对象中的一个方法。 - 给测试方法一个合适的名字。 - 在assert函数中给出失败的原因,如:assertTrue( “… should be true”, ……),方便查错。在这个例子中,如果无法通过assertTrue,那么给出的消息将被显示。在junit中每个assert函数都有第一个参数是出错时显示消息的函数原型。 - 测试所有可能引起失败的地方,如:一个类中频繁改动的函数。对于那些仅仅只含有getter/setter的类,如果是由IDE(如Eclipse)产生的,则可不测;如果是人工写,那么最好测试一下。 - 在setUp和tearDown中的代码不应该是与测试方法相关的,而应该是全局相关的。如针对与测试方法A和B,在setUp和tearDown中的代码应该是A和B都需要的代码。 - 测试代码的组织:相同的包,不同的目录。这样,测试代码可以访问被测试类的protected变量/方法,方便测试代码的编写。放在不同的目录,则方便了测试代码的管理以及代码的打包和发布。一个例子如下: src <=源代码根目录 |---com |---mod1 |---class1 junit <=测试代码根目录 |---com |---mod1 |---class1 http://www.dvbbs.net/tech/program/2006042861394.asp
分享到:
评论

相关推荐

    Junit使用说明 详细

    《Junit使用详解》 Junit,作为Java编程语言中最为广泛应用的单元测试框架,它为开发者提供了方便快捷的方式来编写和执行单元测试,确保代码的正确性和稳定性。本指南将详细解析Junit的使用方法,旨在帮助开发者...

    junit总结使用例子

    本文将深入探讨JUnit的使用方法、核心概念以及常见实践。 ### JUnit简介 JUnit是一个开源的测试框架,它基于Java,主要用于编写和运行针对Java类的单元测试。它的核心理念是通过断言(assertions)来验证代码行为,...

    junit使用指南及作业规范.pdf

    ### JUnit使用指南及作业规范知识点详解 #### 1. JUnit总览 ##### 1.1 简介 JUnit是由Erich Gamma和Kent Beck共同开发的一个回归测试框架,主要用于进行程序员测试(即所谓的白盒测试)。JUnit的官方网站位于...

    Junit使用说明文档

    **Junit使用说明文档** ...总结,Junit是Java开发者必备的单元测试工具,熟练掌握其使用能够显著提升代码质量和开发效率。通过阅读提供的"Junit使用说明"文档,配合源代码和截图,将更直观地理解并运用到实际项目中。

    JUnit3.8.1 以及使用JUnit测试的代码demo

    总结来说,JUnit3.8.1是一个用于Java单元测试的框架,通过创建测试类和方法,利用断言验证代码行为,确保代码质量。虽然现在有更新的版本,但理解其基本原理对于学习单元测试至关重要。通过提供的代码示例,我们可以...

    Junit4使用方法

    JUnit4 使用方法 ...小结 JUnit4 是一个功能强大且灵活的测试框架,提供了许多实用的测试工具和断言方法。通过学习 JUnit4 的使用方法和核心概念,可以提高测试效率和测试质量,确保软件的可靠性和稳定性。

    单元测试工具Junit的简单使用

    ### 单元测试工具Junit的简单使用 #### 一、引言 随着软件开发规模的不断扩大和技术的日益复杂化,软件质量成为了决定项目成败的关键因素之一。单元测试作为提高软件质量的重要手段,在软件开发过程中扮演着至关...

    Junit+Jacoco+ant集成使用

    在Java开发过程中,测试是...总结,集成JUnit和JaCoCo到Ant项目中,可以有效地进行自动化测试并获取代码覆盖率报告,这对于持续集成和代码质量管理至关重要。正确配置和使用这些工具,有助于提升项目的质量和可维护性。

    Eclipse快速上手指南之使用JUnit

    ### Eclipse快速上手指南之使用JUnit #### 一、引言 随着软件开发复杂度的不断提升,确保软件质量成为开发者必须面对的重要课题。单元测试作为软件测试的一种基本形式,在提高软件质量和开发效率方面发挥着不可替代...

    junit与selenium集成使用手册

    ### JUnit与Selenium集成使用手册 #### 一、引言 随着软件开发技术的不断发展,自动化测试成为了提高软件质量的重要手段之一。JUnit 和 Selenium 是两款广泛使用的自动化测试工具,JUnit 主要用于 Java 应用程序的...

    使用Junit4.12需要用的两个包,官网在国内无法下载

    总结起来,虽然无法直接访问JUnit官网,但我们仍可以通过多种方式获取和使用JUnit 4.12所需的jar包,进行有效的单元测试。同时,了解如何在不同环境下配置这些依赖,对于Java开发工作至关重要。

    JUnit在Eclipse中的使用.pdf

    ### JUnit在Eclipse中的使用详解 #### 一、JUnit简介 JUnit是一个广泛使用的Java单元测试框架,由Kent Beck和Erich Gamma共同开发。它提供了一种简单的方式来编写可重复的测试,支持开发者进行测试驱动开发(TDD)...

    Android下使用JUnitTest用例

    总结,使用JUnitTest在Android开发中进行单元测试是提升代码质量和可维护性的关键步骤。通过创建测试用例、运行测试、分析测试结果,开发者能够更好地理解和改进代码,确保应用的稳定性和可靠性。JUnitTestDemo提供...

    android-junit5,使用junit 5进行android测试。.zip

    《使用JUnit5进行Android测试详解》 随着Android开发的不断进化,测试框架也在持续更新以适应新的需求。JUnit5作为最新一代的JUnit测试框架,带来了许多改进和新特性,为开发者提供了更强大的测试能力。本文将详细...

    junit-4.13.2的压缩包,直接下载到本地解压后即可使用

    总结来说,Junit-4.13.2作为Java单元测试的首选工具,它的功能强大且易于使用。无论是IDEA还是Eclipse,都提供了丰富的支持,让测试工作更加高效。通过熟练掌握Junit,开发者可以编写出更健壮、更可维护的代码,提升...

    Junit4测试总结

    **Junit4测试总结** JUnit4是Java编程语言中最常用的一个单元测试框架,它极大地简化了测试代码的编写,使得开发者能够更加专注于测试用例的设计和执行。在本文中,我们将深入探讨JUnit4的主要特性、如何使用以及它...

    junit4 jar包

    总结一下,"junit4 jar包"是Java开发中不可或缺的一部分,它提供了一套完善的单元测试工具和API,帮助开发者确保代码的质量和稳定性。通过`junit-4.11.jar`和`hamcrest-core-1.3.jar`这两个关键库,我们可以编写出...

    ANT&JUNIT中文手册

    总结来说,这个《ANT&JUNIT中文手册》是一份全面的资源,涵盖了Ant和JUnit的基础到进阶内容,对于Java开发者来说是一份宝贵的参考资料。通过学习,你可以提升项目管理效率,确保代码质量,进一步提高开发工作的专业...

Global site tag (gtag.js) - Google Analytics