Eclipse中使用JUnit4测试JDBC接口实现

一、准备

1)待测试编写好的JDBC类;

2)项目中导入ojdbc14.jar(编写JDBC的时候就已导入,点击查看)和JUnit4库:Properties --> Java Build Path --> Add Library... --> JUnit-Next-JUnit4-Finish;

二、创建和编写测试用例

1)在“JDBC类名.java”上new一个JUnit Test Case,Name最好写成“测试类类名Test”的形式,多选项中只选setUp(),Class under test 可以手动输入“包名.测试类类类名”或者Browse输入“测试类类名”,然后Next,选择要测试的方法,最后Finish,Eclipse自动生成了一串测试方法(无方法体,自己编译),统一名字都为“test方法名”。

建议:在import包之后public测试类之前最好加一句@FixMethodOrder(MethodSorters.NAME_ASCENDING) ,同时把测试类中的方法名都改为“testxxx方法名”,xxx为000-999,这句话的目的是给测试的方法排序,比如我要测的是使用JDBC操作Oracle数据库,添加、删除、查询数据是需要有先后顺序的;

2)给测试方法写方法体

注意:

①测试方法必须用public void修饰;

②每一个测试用例都要包含元数据,如@Test(注意大小写),使用Eclipse创建测试类已经自动写好了,@Test指明了下面是要测试的方法。@BeforeClass(@AfterClass)会在所有的测试方法开始(结束)前(后),先运行一遍它里面写的方法,比如我是要连接数据库进行操作的,要是使用@Before的话,会在每一个测试方法前都连接一次数据库,如果数据库内容很多,那么就拖慢了整个测试的速度,所以这时就有了@BeforeClass(@AfterClass),即在所有测试方法前先连接上数据库,待所有测试方法执行完后再关闭数据库;

③@Ignore写在一个方法的@Test前面时,执行测试时会自动忽略这个方法,比如还没实现这个测试方法的时候就可以用@Ignore("说明Ignore的原因")标注。

我的测试程序如下:

package zapp;

import static org.junit.Assert.*;

import org.junit.BeforeClass;
import org.junit.AfterClass;
import org.junit.FixMethodOrder;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runners.MethodSorters;

import zapp.App;

@FixMethodOrder(MethodSorters.NAME_ASCENDING)  

public class AppTest0 {
    
    private static App JDBC = new App("scott","tiger");
    final String select = "SELECT * FROM salary ORDER BY empid";

    /*所有操作开始之前连接数据库*/
    @BeforeClass
    public static void setUp() throws Exception {
        JDBC.createConnection();
    }
    
    /*所有操作结束之后关闭数据库*/
    @AfterClass
    public static void tearDown() throws Exception {
        JDBC.closeConnection(JDBC.createConnection());;
    }
    
    /*插入测试*/
    @Test
    public void test001Insert() {
        String insert = "INSERT INTO salary VALUES "
                + "(5,'蒲xx',2144.63,trunc(to_Date('19900304','YYYYMMDD')),'Analyst')";
        assertEquals(0,JDBC.insert(insert));
    }
    
    /*查询测试*/
    @Test
    public void test002SelectSql() {
        assertEquals(null,JDBC.selectSql(select));
    }
    
    /*打印测试*/
    @Test
    public void test003PrintRs() {
        JDBC.printRs(JDBC.selectSql(select));
    }
    
    /*删除测试,删除后查询打印*/
    @Test
    public void test004Delete(){
        String delete = "DELETE FROM salary WHERE EMPID=5";
        JDBC.delete(delete);
        JDBC.selectSql(select);
        JDBC.printRs(JDBC.selectSql(select));
        assertEquals(0,JDBC.delete(delete));
    }
}

 

posted @ 2015-08-07 14:43  动如参与商  阅读(2619)  评论(0编辑  收藏  举报