JUnit如何使用介绍

JUnit如何使用介绍

第一步,使用前的环境配置准备工作。(在此文档中我使用JUnit的版本为JUnit4.3.1)先检查一下你的Eclipse环境是否已经有编写JUnit测试类的环境了,如果有了就可以直接使用了,如果没有安装,请参考以下操作,如:在Eclipse要安装那些插件和写JUnit测试类时,项目中要导入那些相应的.jar包。按照下列步骤执行:

1,  junit.org官方网站或其他途径下载你需要版本的JUnit包。

2,  把你下载的包释放在自己电脑的某个目录。(比如:D:/java

3,  把你释放文件中的如:org.junit4_4.3.1文件拷贝Eclipse/plugins目录下,如果你的电脑上的环境安装了MyEclipse6.0插件了,这个文件也就存在/plugins目录下了,也就是说你要写JUnit的测试类环境已经好了,可以直接写了。

    /plugins目录下需要的JUnit文件为:

4,  以下是如何检验JUnit是否已经安装成功:

第一种方法:在EclipseàWindowàPreferencesàJavaàJUnit是否存在,如果存在JUnit就算安装好了。如下图所示:

 

另一种方法:在EclipseàWindowàShowViewàOtheràJavaàJUnit是否存在,如果存在JUnit就算安装好了。如下图所示:

 

 

 

接下来,我们要来往要使用JUnit测试的项目中,导入JUnit相应的版本包,如下所示:

在项目中要导入的.jar文件:

 

第二步,我们来编写第一个JUnit测试类,从数据库中取出一条记录的测试类。

1,  要在项目里选中的test路径下创建测试类,如下图所示:

2,  在选中的test路径上右击NewàOtheràJUnitàJUnit Test Case如下图所示:

3,  在选中JUnit Test Case时,点击Next按钮出现下图所示:

4,  在红框中有Name:输入框里填写上测试类的名称,如:TestGetOneData,点击Finish按钮即可, TestGetOneData.java测试类就创建完成了。

 

类名:TestGetOneData.java

TestGetOneData.java代码如下:

package com.whh.test.test;

 

import static org.junit.Assert.assertEquals;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

import org.junit.After;

import org.junit.Before;

import org.junit.Test;

 

/**

 * 测试从数据库中的某表中取出一条记录

 *

 * @author wanghonghai

 *

 */

public class TestGetOneData {

 

    private Connection conn = null;

    private String url = "jdbc:oracle:thin:@localhost:1521:whhdb";

    private String driverClassName = "oracle.jdbc.driver.OracleDriver";

    private String user = "whh";

    private String pass = "whh";

 

//setup()方法中放置标准资源初始化

    @Before

    public void setUp() throws Exception {

       Class.forName(driverClassName).newInstance();

       conn = DriverManager.getConnection(url, user, pass);

    }

 

//tearDown()方法中放置标准资源回收

 

    @After

    public void tearDown() throws Exception {

       conn = null;

    }

 

//testGetOneData()方法中放置的是需要测试代码或要测试的另一个类中的方法

 

    @Test

    public void testGetOneData() {

       try {

           Statement st = conn.createStatement();

           String sql = "select u_name from WHH_USER_INFO where U_ID = 1";

           ResultSet rs = st.executeQuery(sql);

           String str = null;

           while (rs.next()) {

              str = rs.getString("u_name");

           }

           assertEquals("管理员", str);

       } catch (Exception e) {

           e.printStackTrace();

       }

    }

}

第三步,执行编写好的TestGetOneData.java类,执行成功的结果为下图所示:

不管什么错误导致执行失败时,如下图所示:

显示TestGetOneData.java测试类中的那个方法报出的错,下图所示:

显示测试类在执行失败时,报错的原因是什么,下图所示:

接下来,我来写一个测试类来测试另一个类中的某个方法,也就大家所说的单元测试。以下所示:

5,  以接本文档中的第五页的第4步,在红框中有Name:输入框里填写上测试类的名称,如:TestAccount,在下个红框中有Class under test:点击输入框后的Browse按钮,如下图所示:

 

 

6,  在上图上选中要测试的类,点击OK按钮,返回到下图所示的弹出框。

7,  点击Next按钮,如下图所示:

8,  选中要测试的类中的测试的方法,如此例为:要测试为Account.java类中的abs(int)addition(int,int)等两方法,点击Finish按钮即可, TestAccount.java测试类就创建完成了,经过我编写了一些代码到TestAccount.java测试类中,最终TestAccount.java代码如下所示:

要测试的类Account.java代码:

package com.whh.test.process.test;

 

/**

 * 算术计算的应用算法

 *

 * @author wanghonghai

 *

 */

public class Account {

 

    /**

     * 取一个数的绝对值

     *

     * @param n

     * @return

     */

    public static int abs(int n) {

       return n > 0 ? n : (-n);

    }

 

    /**

     * 两个数相加

     *

     * @param m

     * @param n

     * @return

     */

    public static int addition(int m, int n) {

       return m + n;

    }

}

测试类TestAccount.java代码:

package com.whh.test.process;

 

import static org.junit.Assert.*;

import org.junit.After;

import org.junit.Before;

import org.junit.Test;

import com.whh.test.process.test.Account;

 

/**

 * 算术计算的应用算法

 *

 * @author wanghonghai

 *

 */

public class TestAccount {

 

    @SuppressWarnings("unused")

    private Account account;

 

    @Before

    public void setUp() throws Exception {

       account = new Account();

    }

 

    @After

    public void tearDown() throws Exception {

    }

 

    @SuppressWarnings("static-access")

    @Test

    public void testAbs() {

       assertEquals(account.abs(-12), 12);

       assertEquals(account.abs(2), 2);

       assertEquals(account.abs(0), 0);

    }

 

    @SuppressWarnings("static-access")

    @Test

    public void testAddition() {

       assertEquals(account.addition(4, 5), 9);

       assertEquals(account.addition(3, 5), 8);

    }

}

 

在这里我简单介绍一下JUnit核心类:

TestCase + TestSuite + BaseTestRunner = TestResult

以上三个类是JUnit主要核心类,共同产生测试结果。

TestCase(测试用例)­-- 扩展了JUnitTestCase类的类。它以testXXX方法是形式包含一个或多个测试。

TestSuite(测试集合)-- 一组测试(多个TestCase组合在一起测试)

TestRunner(测试运行器)-- 实际上指的是任何继承BaseTestRunnerTestRunner的类。也就是说BaseTestRunner是所有TestRunner的超类。

还有四个类紧密配合在一起来完成整个测试。分别是:

Assert – 当条件成立时assert方法保持沉默,当条件不成立时就抛出异常。

TestResult – 包含了在测试中发生的所有错误或者失败。

Test – 可以运行Test并把结果传递给TestResult

TestListener – 测试中产生的所有事件(开始、结束、错误、失败)会通知TestListener

下图展示了7JUnit核心类之间的关系。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值