`
flysnowxf
  • 浏览: 578779 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JUnit4.5文档翻译1之Cookbook

阅读更多
序言:
JUnit文档内容较少,用词也较简单,适合我这种低水平的人以学习之用。
两位作者都是望尘莫及的大师,他们的简介wiki为:
Kent Beck:http://en.wikipedia.org/wiki/Kent_Beck
Erich Gamma:http://en.wikipedia.org/wiki/Erich_Gamma
以下进入主题,若翻译对读者误导了,还请海涵。

JUnit Cookbook

Kent Beck, Erich Gamma

本简要手册将告诉你使用JUnit进行书写和组织测试代码的步骤。

简单的测试用例

你是如何写测试代码的?

最简单的方式是在调试器调试语句。你可以不重新编译而改变调试语句(step into,step over等),并且当你观察到正在运行的对象时,你可以判断对象中写了什么数据(原句:You can change debug expressions without recompiling, and you can wait to decide what to write until you have seen the running objects. 翻译地很别扭)。你也可以写反映状态的测试语句,让它们输出在标准输出流中。这两种方式都是有缺陷的,因为人们要根据自己的判断力去分析这些测试语句的结果。并且,它们合作地也不漂亮--你只能同时执行一条调试语句,并且一个程序中有太多打印语句的话会引起恐怖的"Scroll Blindness"。

JUnit测试不需要人们去分析,并且它很容易同时运行多个程序。当你需要测试程序时,你要做的只是:

1.使用@org.junit.Test注解一个方法
2.当你想检查一个变量时,首先静态import org.junit.Assert.*,然后调用assertTrue()并且传递一个表示boolean值的参数,如果测试成功它将显示判断是正确的

例如,要测试两个Money对象的和是否等于两个Money对象的值的和,可以这么写:

@Test public void simpleAdd() {
    Money m12CHF= new Money(12, "CHF"); 
    Money m14CHF= new Money(14, "CHF"); 
    Money expected= new Money(26, "CHF"); 
    Money result= m12CHF.add(m14CHF); 
    assertTrue(expected.equals(result));
}


装置

如果你有两个或多个测试使用到了相同的对象设置呢?

测试运行前需要对一些对象进行设置。这种对对象的设置我们称之为测试装置(原文:Tests need to run against the background of a known set of objects. This set of objects is called a test fixture.太晦涩了)。写测试代码的时候,你经常会发现建立这种装置比实际测试代码花费了更多的时间。

在某种程度上,你可以在构造函数中实现这些装置代码。不管怎样,通过共享装置代码可以节省更多的时间。通常,你将在不同的测试中使用相同的装置。每个测试用例在装置中有细微的差别,并且使用被装置的对象去检测不同的结果。

当你使用一个普通装置时,你可以这么做:

1.添加一个成员变量
2.使用@org.junit.Before注解一个方法,并在这个方法中初始化变量
3.使用@org.junit.After注解一个方法,用以释放在setUp中分配的资源空间

例如,写一些测试用例,要使用12 Swiss Francs、14 Swiss Francs和28 US Dollars的不同组合,我们首先新建一个装置:

public class MoneyTest { 
    private Money f12CHF; 
    private Money f14CHF; 
    private Money f28USD; 
    
    @Before public void setUp() { 
        f12CHF= new Money(12, "CHF"); 
        f14CHF= new Money(14, "CHF"); 
        f28USD= new Money(28, "USD"); 
    }
}


一旦你恰当地使用了装置,你可以随心所欲地写很多测试用例。添加一堆的测试方法即可(通过@Test来注解)。

运行测试

你是如何运行测试和收集结果的?

一旦写好了测试代码,你就想去运行它们。JUnit提供了一些工具去定义套件,来运行测试和显示结果。在控制台上显示结果,使用Java程序来运行:

org.junit.runner.JUnitCore.runClasses(TestClass1.class, ...);


或者使用命令行来运行,另还需要设置测试代码的class和junit的jar包到classpath中:

java org.junit.runner.JUnitCore TestClass1.class [...other test classes...]

你可以让JUnit 4的测试代码运行在早期版本的TestRunner中,只需定义一个返回test的静态方法suite:

public static junit.framework.Test suite() { 
    return new JUnit4TestAdapter(Example.class); 
}


预期的异常

你是如何检验那些将要抛出预期异常的代码?

检验代码通常只是编写代码的一部分。例如:

new ArrayList<Object>().get(0)


这行代码将会抛出IndexOutOfBoundsException。@Test有一个可选参数“expected”,它的值为Throwable的子类。如果我们想要验证ArrayList是否抛出了正确的异常,可以这么做:

@Test(expected= IndexOutOfBoundsException.class) public void empty() { 
    new ArrayList<Object>().get(0); 
}
0
0
分享到:
评论

相关推荐

    junit4.5.zip

    Junit4.5是Java编程领域中一个非常重要的单元测试框架,主要用于软件开发过程中的测试工作。这个版本的Junit是在2006年发布的,它在Junit3的基础上进行了许多改进,使得测试代码更加简洁、高效且易于维护。单元测试...

    JUnit4.5和官方文档

    提供的API文档(如javadoc)对每个类、接口和方法进行了详细的解释,帮助开发者理解和使用JUnit4.5的各种功能。 总之,JUnit4.5是Java开发者进行单元测试的重要工具,其丰富的特性和强大的扩展能力使其在测试领域...

    Junit4.5.rar

    1. **Test Annotation**: JUnit4.5引入了注解(Annotation)的概念,比如`@Test`,用于标记测试方法。相比JUnit3中的继承`TestCase`类的方式,这种方式更加灵活,可以将测试代码与业务逻辑更好地分离。 2. **...

    Junit4.5.jar

    单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件下某个特定函数的行为。其实我们每天都在做单元测试。

    用Junit进行单元测试junit4.5

    1. **注解驱动(Annotation-Based)**:JUnit 4.5引入了注解来声明测试方法和类,如`@Test`、`@Before`、`@After`等,这使得测试代码更加简洁易读。 2. **参数化测试(Parameterized Tests)**:`@RunWith...

    junit4.5.chmm

    使用javadocchm制作的junit4.5帮助文档,方便查询。

    JUnit4.5API参考手册

    JUnit4.5API参考手册 JUnit4.5API参考手册

    junit4.4+junit4.5+开源码打包下载

    JUnit是Java编程语言中最常用的单元测试框架之一,它允许开发者编写可重复运行的测试用例,以确保代码的正确性和稳定性。"junit4.4+junit4.5+开源码打包下载"这个标题和描述指向的是JUnit的两个版本——4.4和4.5,...

    Junit4.5.chm

    chm格式的junit API 文档,方便离线使用

    junit-4.5-SNAPSHOT-20070720-

    《JUnit 4.5 SNAPSHOT-20070720:单元测试框架的里程碑》 JUnit,作为Java编程语言中最广泛使用的单元测试框架,是软件开发过程中的重要工具。这个版本,"junit-4.5-SNAPSHOT-20070720-",是JUnit 4.5的一个快照...

    junit4.5-src.zip

    单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件下某个特定函数的行为。其实我们每天都在做单元测试。

    junit4.5测试软件

    junit测试软件是一单元测试,集成测试工具

    junit4教程junit4.5官方下载

    JUnit 4.5版本是JUnit 4系列的一个重要里程碑,它不仅包含了上述的改进,还可能包含其他增强功能和修复,以提供更好的测试体验。官方下载地址...

    junit4学习文档

    ### JUnit4 学习知识点详解 #### 一、JUnit4 概述 JUnit4 是 JUnit 测试框架的一个重大更新版本,它充分利用了 Java 5 的注解(Annotation)特性来简化测试用例的编写过程。注解是一种元数据,用于描述程序中的...

    test.junit-4.5.jar和test.junit-4.5-sources.jar

    单元测试所需的junit jar包,里面包含class jar 和源码jar,JUnit 是JAVA语言事实上的标准测试库。JUnit 4是三年以来最具里程碑意义的一次发布。它的新特性主要是针对JAVA5中的标记(annotation)来简化测试,而不是...

    junit.jar junit.jar

    junit-4.5 junit-4.5 junit-4.5 junit-4.5 junit-4.5 junit-4.5

    JUnit4基础文档

    JUnit4基础文档 单元测试是软件测试的一种,旨在检验软件的正确性和可靠性。JUnit是一个流行的单元测试框架,广泛应用于Java开发中。本文档介绍了JUnit4的基础知识,包括单元测试的概念、JUnit4的HelloWorld示例、...

    junit-4.11-API文档-中文版.zip

    包含翻译后的API文档:junit-4.11-javadoc-API文档-中文(简体)版.zip; Maven坐标:junit:junit:4.11; 标签:junit、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,...

    Junit单元测试文档

    junit3 junit4 api,单元测试的利器

    junit4.10帮助文档

    JUnit帮助文档,带搜索框的。适合开发人员查询,希望能给各位程序员提供帮助

Global site tag (gtag.js) - Google Analytics