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