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)); } }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM