`
mooncui
  • 浏览: 72691 次
社区版块
存档分类
最新评论

junit笔记

    博客分类:
  • Java
阅读更多

译自:http://junit.sourceforge.net/doc/cookstour/cookstour.htm

不是直接翻译。

1. Command 模式
一个TestCase就是一个Command,command内容都写在run方法里。

2. A best practice is from Smalltalk, "Collecting Parameter":
当你需要收集多个方法的运行结果,比较好的一个方式就是每个方法增加一个参数,用这个参数object来收集结果

3.
    protected void run(final TestCase test) {
        startTest(test);
        Protectable p= new Protectable() {
            public void protect() throws Throwable {
                test.runBare();
            }
        };
        runProtected(test, p);

        endTest(test);
    }

提供可继承实现run方法,其中的protect()方法的具体实现也可以另外写,这里保留了runProtected()方法不用被继承。

 

4. No stupid subclasses

while (Test.class.isAssignableFrom(superClass)) {
            Method[] methods= superClass.getDeclaredMethods();    //得到所有public的方法
            for (int i= 0; i < methods.length; i++) {
                addTestMethod(methods[i], names, theClass);        //判断是否以test开头,返回类型是void,无参数,如果是,则加入names中
            }
            superClass= superClass.getSuperclass();
        }
        if (fTests.size() == 0)
            addTest(warning("No tests found in "+theClass.getName()));
           
        private void addTestMethod(Method m, Vector names, Class theClass) {
            String name= m.getName();
            if (names.contains(name))
                return;
            if (! isPublicTestMethod(m)) {
                if (isTestMethod(m))
                    addTest(warning("Test method isn't public: "+m.getName()));
                return;
            }
            names.addElement(name);
            addTest(createTest(theClass, name));
        }
       
        static public Test createTest(Class theClass, String name) {
            Constructor constructor;
            try {
                constructor= getTestConstructor(theClass);
            } catch (NoSuchMethodException e) {
                return warning("Class "+theClass.getName()+" has no public constructor TestCase(String name) or TestCase()");
            }
            Object test;
            try {
                if (constructor.getParameterTypes().length == 0) {
                    test= constructor.newInstance(new Object[0]);    //***********这里是关键,根据各个方法的名字创建了若干个TestCase对象,以方法的名字命名。
                    if (test instanceof TestCase)
                        ((TestCase) test).setName(name);
                } else {
                    test= constructor.newInstance(new Object[]{name});
                }
            } catch (InstantiationException e) {
                return(warning("Cannot instantiate test case: "+name+" ("+exceptionToString(e)+")"));
            } catch (InvocationTargetException e) {
                return(warning("Exception in constructor: "+name+" ("+exceptionToString(e.getTargetException())+")"));
            } catch (IllegalAccessException e) {
                return(warning("Cannot access test case: "+name+" ("+exceptionToString(e)+")"));
            }
            return (Test) test;
        }

 

5. 不用去考虑一个或多个 -- TestSuite

TestSuite和TestCase都实现了Test接口,TestSuite中放了一个Vector,可以放TestSuite/TestCase这些实现了Test接口的对象。

6. 总结

 

 

 

7.其他
theClass.getConstructor(args);  得到一个类的构造函数,其仅含有一个String的参数
theClass.getConstructor(new Class[0]);  得到一个类的无参数构造函数
上面两个返回的是Constructor

Modifier.isPublic(theClass.getModifiers())  可以判断一个类是否是public的
Modifier.isPublic(m.getModifiers() 可以判断一个方法是否是public的

Test.class.isAssignableFrom(superClass)
 Determines if the class or interface represented by this Class object is either the same as, or is a superclass or superinterface of, the class or interface represented by the specified Class parameter.

分享到:
评论

相关推荐

    Junit学习笔记~

    Junit学习笔记,希望有用~~~~~~~~~~~~~~~~~~~~~~

    Junit学习笔记

    本学习笔记将深入探讨JUnit的核心概念、使用方法以及其在实际开发中的应用。 一、JUnit简介 JUnit是开源项目,由Ernst Konig和Kent Beck发起,最初是针对Java平台设计的。现在,JUnit已经成为Java开发者进行单元...

    JUnit学习笔记

    这篇博客“JUnit学习笔记”可能是博主GreatJone在深入学习JUnit过程中所做的记录和总结,包括了JUnit的基本概念、核心组件、使用方法以及一些高级特性。 首先,JUnit的核心理念是基于断言的测试,即编写特定的测试...

    北京圣思园 junit全套笔记及源码

    在“北京圣思园 junit 全套笔记及源码”中,你将深入学习 JUnit 的各种功能和最佳实践。以下是一些关键知识点: 1. **安装与配置**:首先,你需要了解如何在你的开发环境中安装 JUnit,通常是通过 Maven 或 Gradle ...

    JUnit知识点滴集合笔记

    JUnit知识点滴集合笔记,这个包里面包括了好几篇文档,一定会让你对JUNIT有一个全新的认识。 JUnit 4 抢先看.doc JUnit in java 真正的测试用例实战.doc JUnit起步.doc junit实现过程.doc JUnit中如何测试异常.doc ...

    JUnit入门笔记~

    这篇入门笔记将带你深入了解JUnit的基本概念、使用方法以及其在实际开发中的应用。 **一、JUnit简介** JUnit是一个开源的、基于Java的测试框架,它简化了对代码进行单元测试的过程。通过JUnit,开发者可以快速地...

    JUnit4学习笔记

    法在每个测试方法执行之后都要执行一次,相当于 JUnit3 中的 tearDown 方法,用于清理测试环境。@Test:这是 JUnit4 中的核心元数据,用于标记测试方法。当 JUnit4 运行测试时,会查找所有带有 @Test 注解的方法,并...

    Junit 4.0 学习笔记

    《Junit 4.0 学习笔记》 JUnit 是一个广泛使用的Java编程语言的单元测试框架,尤其在敏捷开发和持续集成环境中扮演着至关重要的角色。本文将深入探讨JUnit 4.0版本的主要特性、核心概念以及如何有效利用它进行单元...

    JUnit学习笔记之NetBeans入门篇

    本篇笔记将带你进入JUnit与NetBeans的结合使用世界,让你在NetBeans中更高效地进行单元测试。 首先,我们需要安装JUnit库到NetBeans。在NetBeans中,打开“工具”菜单,选择“库”,然后点击“新建库”。在弹出的...

    Junit良葛格学习笔记

    "Junit良葛格学习笔记"很可能包含了一系列关于如何有效利用JUnit进行测试的教程和示例。下面将详细阐述JUnit的核心概念、功能以及在实际开发中的应用。 1. **JUnit简介**: JUnit是由Ernst Leiss和Kent Beck开发的...

    junit个人学习笔记

    现在的版本都4.3.1,3.8.1的感觉好象不好找,虽然www.junit.org能够找到,但对我们这种英语不好的来说,还是不好找,再说了,现在好多的教程都是以3.8.1来写的,所以在这里把我找到的3.8.1传上来供大家以后下载 博文链接:...

    Junit学习.rar

    这个“Junit学习.rar”压缩包显然包含了关于JUnit从3.8到4.9版本的学习资料,包括可能的操作手册、教程文档以及个人的学习笔记。以下是基于这些资源可能涵盖的一些关键知识点: 1. **JUnit基础知识**:了解JUnit的...

    Junit4单元测试个人笔记

    《Junit4单元测试个人笔记》 单元测试是软件开发过程中的重要环节,它能确保代码的正确性和稳定性。本文主要介绍了使用Junit4进行单元测试的一些规范和Eclipse中的应用。 首先,遵循一定的测试规范至关重要。测试...

    Junit4学习笔记—入门篇.pdf

    ### JUnit4学习笔记——入门篇 #### 一、配置MyEclipse在项目中引入JUnit4.jar包 在使用JUnit4进行单元测试之前,首先需要确保开发环境已正确配置JUnit库。对于使用MyEclipse IDE的开发者来说,可以通过以下步骤...

    junit单元测试——浅浅笔记

    JUnit是Java编程语言中最常用的单元测试框架之一,它允许开发者编写可重复运行的测试用例,以确保代码的正确性和稳定性。以下是对JUnit单元测试框架的一些详细解释: 1. **JUnit简介**: JUnit是一个开源的、基于...

    Junit复习笔记

    这篇复习笔记将深入探讨JUnit的核心概念、功能和最佳实践,以帮助你更好地理解和运用这个强大的工具。 一、JUnit简介 JUnit是开源项目,由Ernst Konig和Kent Beck开发,遵循MIT许可协议。它基于Java,提供了丰富的...

    junit4测试源码

    关于"浪曦JUNIT4笔记"可能涉及的内容,浪曦可能对JUnit4的使用提供了详细的教程或者最佳实践,包括但不限于如何组织测试类,如何使用Mockito进行模拟对象测试,以及如何利用TestNG或Spock等其他测试框架与JUnit4结合...

    Junit In Action 学习笔记----下载不扣分,回帖加1分,童叟无欺,欢迎下载

    第一部分:Junit精粹 第1章:带着你为一个简单的对象创建测试。在此过程中介绍了单元测试的好处,理念,和方法。 随着测试越来越复杂,我们把用junit创建更好的测试方案来展现。 第2章:进一步深入研究了Junit的...

    读书笔记:junit junit5 jupiter 单元测试 java单元测试 测试驱动开发.zip

    读书笔记:junit junit5 jupiter 单元测试 java单元测试 测试驱动开发

Global site tag (gtag.js) - Google Analytics