junit在myeclipse中使用的詳細步驟


myEclipse中junit的用法

我們創建一個Java工程,添加一個example.Hello類,首先我們給Hello類添加一個abs()方法,作用是返回絕對值:

  下一步,我們准備對這個方法進行測試,確保功能正常。選中Hello.java,右鍵點擊,選擇New->JUnit Test Case:

  Eclipse會詢問是否添加junit.jar包,確定后新建一個HelloTest類,用來測試Hello類。

  選中setUp()和tearDown(),然后點擊“Next”:

  選擇要測試的方法,我們選中abs(int)方法,完成后在HelloTest.java中輸入:

  JUnit會以以下順序執行測試:(大致的代碼)

try {
HelloTest test = new HelloTest(); // 建立測試類實例
test.setUp(); // 初始化測試環境
test.testAbs(); // 測試某個方法
test.tearDown(); // 清理資源
}
catch…
  setUp()是建立測試環境,這里創建一個Hello類的實例;tearDown()用於清理資源,如釋放打開的文件等等。以test開頭的方法被認為是測試方法,JUnit會依次執行testXxx()方法。在testAbs()方法中,我們對abs()的測試分別選擇正數,負數和0,如果方法返回值與期待結果相同,則assertEquals不會產生異常。

  如果有多個testXxx方法,JUnit會創建多個XxxTest實例,每次運行一個testXxx方法,setUp()和tearDown()會在testXxx前后被調用,因此,不要在一個testA()中依賴testB()。

  直接運行Run->Run As->JUnit Test,就可以看到JUnit測試結果:

  綠色表示測試通過,只要有1個測試未通過,就會顯示紅色並列出未通過測試的方法。可以試圖改變abs()的代碼,故意返回錯誤的結果(比如return n+1;),然后再運行JUnit就會報告錯誤。

  如果沒有JUnit面板,選擇Window->Show View->Other,打開JUnit的View:

  JUnit通過單元測試,能在開發階段就找出許多Bug,並且,多個Test Case可以組合成Test Suite,讓整個測試自動完成,尤其適合於XP方法。每增加一個小的新功能或者對代碼進行了小的修改,就立刻運行一遍Test Suite,確保新增和修改的代碼不會破壞原有的功能,大大增強軟件的可維護性,避免代碼逐漸“腐爛”。

代碼測試用例:

package com.inspur.test;

import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import com.inspur.po.TUser;

import junit.framework.Assert;
import junit.framework.TestCase;

public class HibernateTest extends TestCase{
 Session session=null;

 @Override
 protected void setUp() throws Exception {
  // TODO Auto-generated method stub
  Configuration config=new Configuration().configure();
  SessionFactory sessionFactory=config.buildSessionFactory();
  session=sessionFactory.openSession();
 }

 @Override
 protected void tearDown() throws Exception {
  // TODO Auto-generated method stub
  session.close();
 }
 public void testSelect(){
  String hql="from TUser where name='lzhq'";
  Transaction tran=null;
  try{
   tran=session.beginTransaction();
   List userList=session.createQuery(hql).list();
   TUser user=(TUser)userList.get(0);
   Assert.assertEquals(user.getName(), "lzhq");
  }catch(HibernateException e){
   e.printStackTrace();
   Assert.fail(e.getMessage());
  }
 }
 public  void testInsert(){  
  Transaction tran=null;
  try{
   TUser user=new TUser();
   tran=session.beginTransaction();
   user.setName("lzhq");
   session.save(user);
   session.flush();
   tran.commit();
  }catch(HibernateException e){
   e.printStackTrace();
   Assert.fail(e.getMessage());
   if(tran!=null){
    try{
     tran.rollback();
    }catch(HibernateException e1){
     e1.printStackTrace();
    }
   }
  }
 }
 

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM