dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>java>java基础>文章内容
JUnit单元测试(2)
来源:原创 作者:葫芦娃

创建一个检测Calculator的测试类CalculatorTest,创建过程参考视频文件。

import static org.junit.Assert.*;

import org.junit.Before;

import org.junit.Test;

 

public class CalculationTest {

    private Calculation ca; // 定义Calculation引用,测试时候需要调用各种计算方法

 

    @Before

    public void setUp() throws Exception {

        ca = new Calculation(); // 在测试开始之前首先初始化ca引用

    }

 

    /**

     * 测试Calculation中的add方法。测试数据通常选择一些临界数据(01-1)和必         

     * 须的测试数据

     */

    @Test

    public void testAdd() {

        /*

         * assertEqualsObject,Object)方法用于检测方法的返回值跟预期的结果是否

         * 一致。所有的测试数据都通过之后才能说明add方法测试通过

         */

        assertEquals(40, ca.add(10, 30));

        assertEquals(40, ca.add(20, 20));

        assertEquals(40, ca.add(30, 10));

        assertEquals(40, ca.add(40, 0));

        assertEquals(40, ca.add(0, 40));

        assertEquals(40, ca.add(-0, 40));

        assertEquals(40, ca.add(40, 0));

        assertEquals(40, ca.add(80, -40));

        assertEquals(40, ca.add(-40, 80));

        assertEquals(0, ca.add(0, 0));

        assertEquals(0, ca.add(-0, 0));

        assertEquals(0, ca.add(0, -0));

        assertEquals(1, ca.add(2, -1));

        assertEquals(-1, ca.add(-2, 1));

    }

 

    /**

     * 测试calculationsubtration方法

     */

    @Test

    public void testSubtration() {

        assertEquals(-20, ca.subtration(10, 30));

        assertEquals(0, ca.subtration(20, 20));

        assertEquals(20, ca.subtration(30, 10));

        assertEquals(40, ca.subtration(40, 0));

        assertEquals(-40, ca.subtration(0, 40));

        assertEquals(-40, ca.subtration(-0, 40));

        assertEquals(40, ca.subtration(40, 0));

        assertEquals(120, ca.subtration(80, -40));

        assertEquals(-120, ca.subtration(-40, 80));

        assertEquals(0, ca.subtration(0, 0));

        assertEquals(0, ca.subtration(-0, 0));

        assertEquals(0, ca.subtration(0, -0));

        assertEquals(3, ca.subtration(2, -1));

        assertEquals(-3, ca.subtration(-2, 1));

    }

 

    /**

     * 测试calculationmultiplication方法

     */

    @Test

    public void testMultiplication() {

        assertEquals(300, ca.multiplication(10, 30));

        assertEquals(400, ca.multiplication(20, 20));

        assertEquals(300, ca.multiplication(30, 10));

        assertEquals(0, ca.multiplication(40, 0));

        assertEquals(0, ca.multiplication(0, 40));

        assertEquals(0, ca.multiplication(-0, 40));

        assertEquals(0, ca.multiplication(40, 0));

        assertEquals(-3200, ca.multiplication(80, -40));

        assertEquals(-3200, ca.multiplication(-40, 80));

        assertEquals(0, ca.multiplication(0, 0));

        assertEquals(0, ca.multiplication(-0, 0));

        assertEquals(0, ca.multiplication(0, -0));

        assertEquals(-2, ca.multiplication(2, -1));

        assertEquals(-2, ca.multiplication(-2, 1));

    }

 

    /**

     * 测试calculationdivision方法

     */

    @Test

    public void testDivision() {

        assertEquals(0, ca.division(10, 30));

        assertEquals(1, ca.division(20, 20));

        assertEquals(3, ca.division(30, 10));

        assertEquals(0, ca.division(0, 40));

        assertEquals(0, ca.division(-0, 40));

        assertEquals(-2, ca.division(80, -40));

        assertEquals(0, ca.division(-40, 80));

        assertEquals(-2, ca.division(2, -1));

        assertEquals(-2, ca.division(-2, 1));

    }

 

    /**

     * 测试除数为0的时候是否抛出异常

     */

    @Test(expected = IllegalArgumentException.class)

    public void testDivisionException() {

        ca.division(40, 0);

        ca.division(40, 0);

        ca.division(0, 0);

        ca.division(-0, 0);

        ca.division(0, -0);

    }

}

测试用例类的运行方式如下图:

 

Eclipse工具左边JUnit工具区出现绿色进度条意味着JUnit测试全部通过。

四、JUnit 4语法结构

最新JUnit 4版本语法和从前相比语法异常简单,初学者10分钟就能全部掌握。

1、任意给Junit测试用例起类名,但需要符合正常的Java类命名规范。

2、测试用例类不用继承超类以及实现接口

public class CalculationTest{}

3、如果希望在执行测试之前运行某些代码,例如连接数据库、创建工厂类对象和初始化变量等等,我们可以将这样的代码写到一个方法之中,方法名字自己任意定义。但是需要在方法之前添加元数据“@Before

private Calculation ca; // 定义Calculation引用,测试的时候需要调用计算方法

    @Before

    public void setUp() throws Exception {

        ca = new Calculation(); // 在测试开始之前首先初始化ca引用

}

上面的例子看到,在执行测试之前对ca引用进行初始化。这样的代码应该被放在测试之前执行,否则在测试过程中ca没有被初始化,它的值只能是null

4、如果那些代码需要在测试执行之后运行,例如关闭数据库连接、关闭线程池以及关闭数据库连接池等等,我们还是将他们写道一个方法中,在方法前加入“@After”。

    @After

    public void setDown() throws Exception {

        // 这里写入代码

}

5、定义测试方法。

1)       方法名任意起

2)       方法前面加上“@Test

3)       方法中可以定义测试的代码

6、测试上传异常

@Test(expected= IllegalArgumentException.Class)

方法前的这句元数据意思是期待抛出IllegalArgumentException类型的异常

7、测试时间

测试时间指的是当超过指定的时间,测试仍然没有结束,则判定测试失败。

    @Test(timeout=500)

    public void testGetConnection() {

        //写入测试代码

}

上面的代码意味着当500毫秒之后,测试没有结束测试就失败。


上一篇:JUnit单元测试(1)   下一篇:教你如何进入有密码的WindowsXP系统
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·JUnit单元测试(1)
·浅谈在Java语言中究竟是传值还是
·Java 5.0 多线程编程实践
·Java的文件 读和写
·对于JAVA基础测试中常见的异常问
·JAVA程序员面试33问,你能回答多
·Java Reflection (JAVA反射)详解
·JAVA中配置环境变量设置方法大全
·讲述java语言中内部类的研究
·详细解析Java中抽象类和接口的区
·Java开发中的事件驱动模型实例详
·Java SE 6 新特性: HTTP 增强
  相关文章
·JUnit单元测试(1)
·浅谈在Java语言中究竟是传值还是
·Java 5.0 多线程编程实践
·Java的文件 读和写
·对于JAVA基础测试中常见的异常问
·JAVA程序员面试33问,你能回答多
·Java Reflection (JAVA反射)详解
·JAVA中配置环境变量设置方法大全
·讲述java语言中内部类的研究
·详细解析Java中抽象类和接口的区
·Java开发中的事件驱动模型实例详
·Java SE 6 新特性: HTTP 增强
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763