블로그 이미지
평범하게 살고 싶은 월급쟁이 기술적인 토론 환영합니다.같이 이야기 하고 싶으시면 부담 말고 연락주세요:이메일-bwcho75골뱅이지메일 닷컴. 조대협


Archive»


 

'DBUnit'에 해당되는 글 2

  1. 2007.08.27 DBUnit 예제 (1)
  2. 2007.08.24 DbUnit
 

DBUnit 예제

ALM/Test Automation | 2007. 8. 27. 16:50 | Posted by 조대협

데이타베이스에 대한 테스트를 할 수 있는 DBUnit에 대한 샘플 코드.
DBUnit은 DataBaseConnection을 JDBCDriver,JNDI,DataSource등에서 얻어올 수 있다. 아래 예제는 JDBCDriver에서 얻어오는 예제

테스트 절차는 다음과 같다.
1) setUp메서드에서 데이타베이스를 테스트전으로 초기화 하고, (이때, XML파일을 이용해서 초기 데이타를 로딩할 수 있다.)
2) 테스트할 OBJECT를 수행한후
3) 테스트 기대 결과를XML에서 읽은후에
4) 데이타베이스의 기록 상태를 3)과 비교한다.

참고로 1)의 데이타는 테스트케이스에서 자동으로 XML 파일로Generation하거나 DTD를 생성할 수 있다.

참고 : http://www.onjava.com/pub/a/onjava/2004/01/21/dbunit.html

== EmpDAOTest .java ==
package bcho.simpledb.test;

import java.io.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;

import org.dbunit.Assertion;
import org.dbunit.DBTestCase;
import org.dbunit.PropertiesBasedJdbcDatabaseTester;
import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.ITable;
import org.dbunit.dataset.xml.FlatXmlDataSet;
import org.dbunit.operation.DatabaseOperation;

import bcho.simpledb.EmpDAO;
import bcho.simpledb.EmpDAOImpl;

public class EmpDAOTest extends DBTestCase
{
 final static String JDBC_DRIVER="org.gjt.mm.mysql.Driver";
 final static String JDBC_USERID="irteam";
 final static String JDBC_USERPASSWD="svnirteam";
 final static String JDBC_URL="jdbc:mysql://121.156.62.202:20001/db_svn_auth";
 //
 // Method Overloading
 //


 protected IDataSet getDataSet() throws Exception
 {
  return new FlatXmlDataSet(new FileInputStream("c:\\temp\\dataset.xml"));
 }
 
 public EmpDAOTest(String name){
  super(name);
     System.setProperty( PropertiesBasedJdbcDatabaseTester.DBUNIT_DRIVER_CLASS, JDBC_DRIVER );
     System.setProperty( PropertiesBasedJdbcDatabaseTester.DBUNIT_CONNECTION_URL, JDBC_URL );
     System.setProperty( PropertiesBasedJdbcDatabaseTester.DBUNIT_USERNAME, JDBC_USERID );
     System.setProperty( PropertiesBasedJdbcDatabaseTester.DBUNIT_PASSWORD, JDBC_USERPASSWD );

 }

    protected DatabaseOperation getSetUpOperation() throws Exception
    {
        return DatabaseOperation.DELETE_ALL;
    }
    protected DatabaseOperation getTearDownOperation() throws Exception
    {
        return DatabaseOperation.NONE;
    }

 //
 // Test Method
 //

 public void testInsertEmployee(){
  IDatabaseConnection conn = null;
  try{
   // execute Test Object
   EmpDAO empDao = new EmpDAOImpl();
   empDao.insertEmployee("bcho", "YoungIn Suji");
   
   // fetch Data After insert
   conn = getConnection();
   IDataSet databaseDataSet = conn.createDataSet();
   ITable actualTable = databaseDataSet.getTable("BCHO_EMP");
   
   // fetch Data from XML data sheet
   IDataSet expectedDataSet = new FlatXmlDataSet(new File("c:\\temp\\dataset.xml"));
   ITable expectedTable = expectedDataSet.getTable("BCHO_EMP");
   Assertion.assertEquals(expectedTable,actualTable);
  }catch(Exception e ){
   e.printStackTrace();
   fail("Test failed during testEmpTable");
  }finally{
   try{
    closeConnection(conn);
   }catch(Exception e){
    fail("Fail to close connection");
   }//try-catch
  }//finally
 
 }
}
=== dataset.xml ==
<?xml version='1.0' encoding='euc-kr'?>

<dataset>
 <BCHO_EMP name='bcho'
    address='Seoul Korea'/>
</dataset>
===

'ALM > Test Automation' 카테고리의 다른 글

Unit Testing WebLogic Workshop 8.1 Applications & JWebUnit  (0) 2007.08.27
JUnitEE vs Catcus  (0) 2007.08.27
DBUnit 예제  (1) 2007.08.27
단위 성능 테스트  (0) 2007.08.24
단위 테스트 방법  (0) 2007.08.24
테스트의 종류  (0) 2007.08.24
본인은 구글 클라우드의 직원이며, 이 블로그에 있는 모든 글은 회사와 관계 없는 개인의 의견임을 알립니다.
TAG DBUnit

댓글을 달아 주세요

  1. 신지훈 2016.03.24 13:52  댓글주소  수정/삭제  댓글쓰기

    DBUnit를 통해서 디비 서버에 있는 값을 가지고 오는 방법은 없나요???
    현재 서버의 데이터 값과 JSP에서 보여주는 차트 등의 값이 같은지를 판단하고 싶은데 찾기가 어렵네요 ㅠㅠㅠ
    그게 아니라면 지금 가지고 있는 CSV파일의 값과 디비 서버이 값이 같은지 판단하는 테스팅 방법이라든가...

    보통 데이터 조회 테스팅은 어떻게 이루어 지는 건가요??

DbUnit

ALM/Test Automation | 2007. 8. 24. 10:55 | Posted by 조대협
JUnit의 확장판으로
데이타베이스에 대한 테스트를 자동화할 수 있게 해준다.
대부분의 Web App가 RDBMS인것을 가만한다면,
꼭 필요하지 않을까?

==
http://dbunit.sourceforge.net/
==

'ALM > Test Automation' 카테고리의 다른 글

DBUnit 예제  (1) 2007.08.27
단위 성능 테스트  (0) 2007.08.24
단위 테스트 방법  (0) 2007.08.24
테스트의 종류  (0) 2007.08.24
DbUnit  (0) 2007.08.24
JUnit 사용법  (0) 2007.07.25
본인은 구글 클라우드의 직원이며, 이 블로그에 있는 모든 글은 회사와 관계 없는 개인의 의견임을 알립니다.
TAG DBUnit, junit

댓글을 달아 주세요