2011-04-29 3 views
2

간단한 질문입니다. 스프링 애플리케이션에서 몇 가지 단위 테스트가 있습니다. 데이터베이스에는 오라클 뷰가 포함되어 있으며 이러한 뷰에 데이터 세트를 삽입하려고합니다. 옵션을 DBunit (테이블 유형 속성)로 설정할 수 있다는 것을 알고 있습니다. 하지만 나는 unitil을 찾을 수 없다.Unitils/DBunit/Oracle - Oracle보기에 데이터 세트를 삽입하는 방법은 무엇입니까?

뷰에 데이터 집합을 삽입하기위한 몇 가지 단위 속성이 있습니까?

이 좋아 내가 unitils를 구성하는 방법을 찾을 생각 도움

+0

삽입은 '단순한'보기 (한 테이블에만 기반한보기)에서만 수행 할 수 있습니다. 여러 테이블의 조인 결과 인 뷰에는 레코드를 삽입 할 수 없습니다. 가장 먼저해야 할 일은 뷰에 삽입 할 수 있는지 여부를 결정하는 것입니다. –

+0

아마 당신은 실제로 뷰를 갖는 데 사용되는 테이블에 데이터를 추가하고 싶습니다 ... – Cris

+0

뷰는 수정 된 자바 코드없이 db의 다른 테이블 세트로 전환됩니다 ... – Samuel

답변

1

주셔서 감사합니다. 하지만 자바 코드가 필요합니다. 이 솔루션을 테스트 한 결과 작동하는 것 같습니다.

unitils.module.dbunit.className=org.unitils.dbunit.DbUnitModule 
unitils.module.dbunit.runAfter= 
unitils.module.dbunit.enabled=true 

그래서 다음이


public class DbUnitModule extends org.unitils.dbunit.DbUnitModule implements Module { 
    /* 
    * (non-Javadoc) 
    * 
    * @see org.unitils.dbunit.DbUnitModule#getDbUnitDatabaseConnection(java.lang.String) 
    */ 
    @Override 
    public DbUnitDatabaseConnection getDbUnitDatabaseConnection(final String schemaName) { 
     DbUnitDatabaseConnection dbConnection = super.getDbUnitDatabaseConnection(schemaName); 
     dbConnection.getConfig().setProperty("http://www.dbunit.org/properties/tableType", new String[] { "VIEW", "TABLE" }); 
     return dbConnection; 
    } 
} 

과 같은 DBUnitModule 오버라이드 (override) 할 수있을 것 같다 :

먼저 내가 unitils의 일부 속성 (unitils.properties를) 찾을 수 unitils.properties에서 구성을 수정하십시오.

+0

unitils.properties에서 어떤 수정을해야합니까? – Mukus

+0

만 해당 : unitils.module.dbunit.className = your.package.YourClassExtendsDbUnitModule – Samuel

관련 문제