在Eclipse中使用JUnit4进行单元测试(初级篇)

soゝso 2016-08-22 18:29:02 2151

JUnit4单元测试(初级篇)

JUnit4单元测试(中级篇)

JUnit4单元测试(高级篇)

我稍微看了下,讲的都不错,就转载过来了,希望同学们能系统的学习下。虽然有点过时,但是现在用法其实是一样的。

我们在编写大型程序的时候,需要写成千上万个方法或函数,这些函数的功能可能很强大,但我们在程序中只用到该函数的一小部分功能,并且经过调试可以确定,这一小部分功能是正确的。但是,我们同时应该确保每一个函数都完全正确,因为如果我们今后如果对程序进行扩展,用到了某个函数的其他功能,而这个功能有bug的话,那绝对是一件非常郁闷的事情。所以说,每编写完一个函数之后,都应该对这个函数的方方面面进行测试,这样的测试我们称之为单元测试。传统的编程方式,进行单元测试是一件很麻烦的事情,你要重新写另外一个程序,在该程序中调用你需要测试的方法,并且仔细观察运行结果,看看是否有错。正因为如此麻烦,所以程序员们编写单元测试的热情不是很高。于是有一个牛人推出了单元测试包,大大简化了进行单元测试所要做的工作,这就是JUnit4。本文简要介绍一下在Eclipse3.2中使用JUnit4进行单元测试的方法。

首先,我们来一个傻瓜式速成教程,不要问为什么,Follow Me,先来体验一下单元测试的快感!

首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。这个类并不是很完美,我们故意保留了一些Bug用于演示,这些Bug在注释中都有说明。该类代码如下:

package com.sojson.test;

public class Calculator {
    private static int result; // 静态变量,用于存储运行结果
    public void add(int n) {
        result = result + n;
    }
    public void substract(int n) {
        result = result - 1;  //Bug: 正确的应该是 result =result-n
    }
    public void multiply(int n) {
    }         // 此方法尚未写好
    public void divide(int n) {
        result = result / n;
    }
    public void square(int n) {
        result = n * n;
    }
    public void squareRoot(int n) {
        for (; ;) ;            //Bug : 死循环
    }
    public void clear() {     // 将结果清零
        result = 0;
    }
    public int getResult() {
        return result;
    }
}

第二步,将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”,如图:



在弹出的属性窗口中,首先在左边选择“Java Build Path”,然后到右上选择“Libraries”标签,之后在最右边点击“Add Library…”按钮,如下图所示:


然后在新弹出的对话框中选择JUnit4并点击确定,如上图所示,JUnit4软件包就被包含进我们这个项目了。

第三步,生成JUnit测试框架:在Eclipse的Package Explorer中用右键点击该类弹出菜单,选择“New à JUnit Test Case”。如下图所示:



在弹出的对话框中,进行相应的选择,如下图所示:



点击“下一步”后,系统会自动列出你这个类中包含的方法,选择你要进行测试的方法。此例中,我们仅对“加、减、乘、除”四个方法进行测试。如下图所示:



之后系统会自动生成一个新类CalculatorTest,里面包含一些空的测试用例。你只需要将这些测试用例稍作修改即可使用。完整的CalculatorTest代码如下:
package com.sojson.test;

import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;

public class CalculatorTest {

    private static Calculator calculator = new Calculator();
    
    @Before
    public void setUp() throws Exception {
        calculator.clear();
    }

    @Test
    public void testAdd() {
        calculator.add(2);
        calculator.add(3);
        assertEquals(5, calculator.getResult());
    }

    @Test
    public void testSubstract() {
        calculator.add(10);
        calculator.substract(2);
        assertEquals(8, calculator.getResult());
    }

    @Ignore("Multiply() Not yet implemented")
    @Test
    public void testMultiply() {
    }

    @Test
    public void testDivide() {
        calculator.add(8);
        calculator.divide(2);
        assertEquals(4, calculator.getResult());
    }
}

第四步,运行测试代码:按照上述代码修改完毕后,我们在CalculatorTest类上点右键,选择“Run As a JUnit Test”来运行我们的测试,如下图所示:



我们可以看到结果了。
运行结果如下图:




进度条是红颜色表示发现错误,具体的测试结果在进度条上面有表示“共进行了4个测试,其中1个测试被忽略,一个测试失败”。
至此,我们已经完整体验了在Eclipse中使用JUnit的方法。在接下来的文章中,我会详细解释测试代码中的每一个细节!

本文来自转载:http://blog.csdn.net/oqqsoso123456/article/details/50583845


版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/33.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

相关文章
Eclipse中使用JUnit4进行单元测试初级
Eclipse中使用JUnit4进行单元测试(中级
Eclipse中使用JUnit4进行单元测试(高级
Redis教程,Redis集群搭建与Spring-data-redis的使用(集群搭建
Redis教程,Redis集群搭建与Spring-data-redis的使用(介绍
Redis教程,Redis集群搭建与Spring-data-redis的使用(Spring-data-redis使用
Shiro教程(八)Shiro Freemarker标签的使用
七牛Maven项目使用,以及注意事项。
Elasticsearch教程(四) elasticsearch head 插件安装和使用
对Log4j 日志工具类的封装,java LoggerUtils查看和下载
最新文章
Springboot 集成Freemarker 自定义标签解决方案 43
七牛云到底有多垃圾?用七牛云需要知道的事,不然不小心就一套房没了 593
JavaScript怎么识别360浏览器?JS识别360急速模式方案,360流氓浏览器 955
关于本站所有JavaScript 加密、混淆、解密、美化等安全说明 1309
Jsoup 提交参数乱码,解决思路,解决过程及解决方案 748
生成新浪短网址、百度短网址,t.cn / dwz.cn 的生成方式,短链还原 456
ICP怎么操作取消备案,企业、个人怎么自己申请取消备案? 575
Javascript 加密/压缩后运行不了,JavaScript报错排查讲解 499
JavaScript 不可逆加密问题排查之方案一(闭包优化) 553
Java爬虫,Jsoup 爬取大众点评、美团商家信息电话号码解决方案 482
最热文章
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 177764
Elasticsearch教程(四) elasticsearch head 插件安装和使用 139294
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 126358
Elasticsearch教程(六) elasticsearch Client创建 82237
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 81369
Elasticsearch教程(一),全程直播(小白级别) 77840
Elasticsearch教程(二),IK分词器安装 77328
Elasticsearch教程(八) elasticsearch delete 删除数据(Java) 76935
Elasticsearch教程(五) elasticsearch Mapping的创建 69988
Elasticsearch教程(三),IK分词器安装 (极速版) 58308

骚码加入我们 / 千人QQ群:259217951

入群需要5元,如果没有QQ钱包,可以先Alipay、微信,赞助然后加群主拉进。

二维码生成 来自 >> 二维码生成器

支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

正在加载... ...