`
flash7783
  • 浏览: 308618 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

junit简单总结

    博客分类:
  • j2se
阅读更多

这两天花了点时间把junit的源码看了看,把看后的想法总结在这里,说实在的junit的内容真很少,但是确有这么大的影响里,呵呵,只能说它
做的对了。
  因为我比较懒,而且对swing的东西不是太熟悉,所以我只看了junit.framework.*,junit.runner.*,junit.extensions.*,junit.textui.*,我想
这样也就差不多了。
  我先大体的说说,首先你生成一个runner,这个runner调用run方法,run的参数是个suite对象,run方法最终会调用suite的run方法,run方法会将调用
信息写到TestResult中(Colleting Parameter),最后使用TestListener将TestResult中的信息打印出来,觉得过程还是很简单的。
  然后说说一个重要的部分就是Test,TestCase,TestSuite的关系,首先TestCase和TestSuite都实现了Test接口,这个接口中最重要的方法当然是
run,他们构成了composite模式 ,TestCase是leaf,而TestSuite就是composite,当你调用suite的run方法时他会迭代内部所有的Test(放在一个Vector中)调用相应的run方法
,而如果这个Test是一个TestCase类型的它就调用起相应名称的一个test**方法,而如果这个Test是一个TestSuite对象将对调用TestSuite的run方法
进而继续迭代调用其内部的Test,还有一点要说明的当你实现了一个TestCase对象,它只代表一个test**方法,就是构造函数传来的name参数对应的
方法,虽然你的所有测试方法都写在一个TestCase的子类中,但是一个对象只对应一个test**方法.
  接着我要说的就是assert,我们知道test**方法中就是一些asert**方法,可以说测试方法的单元就是这些断言,看过源码后会觉得它的实现相当的简单
就是测试是否满足一定的条件,如果不满足则抛出AssertionFailedError,不知道为什么老大要用Error也许是这样写程序方便,不用随时捕获它吧
如果抛出异常则会封装成TestFailure存到TestResult中(而且也要存到TestListener中).
  junit.runner.*是测试用例运行时需要的环境,这里包括最重要的BaseTestRunner,几个自定义的ClassLoader,几个TestCollector,一个快速排序的助手类
还有一些无关紧要的东西。
  junit.extensions.*中时一些对TestSuite的扩展类它们为某些需求提供了快速实现。
  junit的实现很简单就是用了些反射,同步,还有一些面向对象的技巧,但是它提供了一个runner,为测试代码创建了一个运行环境,这个倒是
个不错的想法,好像sun对容器的使用是很常规的思想,总之要比在manin函数中粗糙的测试要好的多,但我觉得也没有必要神话它吧,起码我觉得
可以作出比他更好的东西,不过简单也的确是它快速推广的原因。

package lq.mytest.test;   
  
import junit.framework.*;   
  
public class KkTest extends TestCase{   
    public KkTest(); {}   
       
    public KkTest(String name); {   
        super(name);;   
    }   
       
    public void setUp(); {   
    }   
       
    public void teatDown(); {   
    }   
       
    public void testA(); {   
        assertEquals(1, 1);;   
    }   
       
    public void testB(); {   
        assertTrue(true);;   
    }   
       
    public static TestSuite suite(); {   
        //将KkTest类中的所有test方法加到suite中   
        //TestSuite suite = new TestSuite(KkTest.class);;   
           
        TestSuite suite = new TestSuite();;   
           
        //使用内省调用testA();   
        suite.addTest(new KkTest("testA"););;   
           
        //使用匿名内部类,重写了runTest方法,直接调用testB方法,而   
        //不用内省,这样是一种提高效率的方法   
        suite.addTest(new KkTest("testB"); {   
            public void runTest(); {   
                testB();;   
            }   
        });;   
           
        return suite;   
    }   
       
    public static void main(String[] args); {   
        //测试全部   
        //junit.textui.TestRunner.run(KkTest.class);;   
        junit.textui.TestRunner.run(suite(););;   
    }   
}  

 

分享到:
评论

相关推荐

    Junit4简单实用

    总结来说,JUnit4 是对 JUnit3 的一个重要升级,它利用 Java 5 的注解特性极大地简化了测试用例的编写,提高了测试代码的可读性和可维护性。通过使用注解,开发者能够更自由地组织测试逻辑,同时也能够方便地扩展...

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

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

    junit3.8 和junit4 api

    JUnit 3.8是JUnit的一个早期版本,它的API设计相对简单,主要包含以下关键组件: 1. **测试类和测试方法**:在JUnit 3中,测试类通常继承自`junit.framework.TestCase`。测试方法以`test`开头,例如`public void ...

    junit测试.zip

    JUnit提供了一套简单的API,开发者可以创建断言来检验代码的预期结果,设置和清理测试环境,以及使用注解(annotations)来定义测试行为。 以下是JUnit的一些核心概念和功能: 1. **测试类和测试方法**:测试类...

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

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

    junit总结

    总结,JUnit作为Java开发中的必备工具,其强大的功能和易用性使得测试工作变得简单高效。深入学习和掌握JUnit,不仅可以提升代码质量,也能促进团队协作和项目的可持续发展。通过阅读官方文档、实践案例以及源码分析...

    Junit 单元测试完整案例

    Junit作为Java领域最常用的单元测试框架,为开发者提供了简单易用的API来进行测试。本案例涵盖了Spring和Struts两大框架的单元测试,旨在帮助开发者掌握如何对这两个流行的Java Web框架进行有效的测试。 一、Junit...

    Junit使用说明文档

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

    JUnit 4测试驱动开发----junit技术讲解

    在JUnit 4中,创建一个简单的测试只需要几步。首先,定义一个包含待测试代码的类,然后用@Test注解标记测试方法。测试方法通常会调用被测试类的函数并使用断言方法来验证结果。在上面的例子中,我们测试了两个整数...

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

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

    Junit 计算器测试

    总结来说,"Junit计算器测试"是一个很好的实践项目,它可以帮助初学者理解Junit的基本用法,包括创建测试类、编写测试方法、使用断言以及理解测试生命周期。通过这样的练习,开发者可以逐步掌握单元测试的精髓,提高...

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

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

    junit与selenium集成使用手册

    本文将详细介绍如何集成 JUnit 和 Selenium,包括环境配置以及实现一个简单的示例。 #### 二、环境配置 在开始集成 JUnit 和 Selenium 之前,首先需要确保所有必要的环境都已正确配置好。 ##### 1. 设置环境变量 -...

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

    下面是一个简单的AndroidJUnit5测试用例示例,测试一个计算加法的函数: ```java import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; public class ...

    Junit4单元测试入门例子

    总结,Junit4使得Java的单元测试变得简单而直观。通过注解,我们可以快速定义测试方法,结合断言库进行结果验证,确保代码质量。在本例中,我们学会了如何为Calculate类的加减乘除方法编写有效的单元测试,为后续的...

    junit单元测试示例

    总结来说,这个“junit单元测试示例”涵盖了以下关键点: 1. 添加JUnit库到构建路径 2. 创建被测试的实体类 3. 编写测试类和测试方法 4. 使用注解标识测试方法 5. 执行单元测试 通过这种方式,开发者可以确保代码的...

    Junit jar.zip

    Junit作为一个轻量级的库,提供了丰富的断言方法和注解,使得创建和运行这些测试变得简单而直观。 Junit 4.13版本是我们在这里讨论的重点,这是Junit的一个稳定版本,包含了众多改进和修复。其中,`junit-4.13.jar`...

    eclipse中Junit的配置

    ### Eclipse中JUnit的配置详解 #### 一、引言 JUnit是Java开发环境中非常重要的单元...这种配置方式不仅简单易行,而且确保了测试的顺利进行。在实际开发过程中,合理运用单元测试可以显著提高代码质量和开发效率。

    junit_4.10.rar

    《JUnit 4.10详解:...总结,JUnit 4.10版本是JUnit发展史上的一个重要里程碑,它的改进极大地提升了测试的效率和质量。通过深入理解和熟练运用其新特性,开发者可以更好地进行单元测试,确保代码的稳定性和可靠性。

Global site tag (gtag.js) - Google Analytics