2013-07-23 46 views
0

我試圖用emmbedded內存數據庫,hsqldb版本2.2.8測試應用程序。與testNG,春季和hsqldb測試

這是我的測試課,我有一個錯誤,我不知道如何解決它。

@Transactional 
@TransactionConfiguration(defaultRollback=true) 
@ContextConfiguration(locations="classpath*:applicationContext-deutes-punts-logica-Test.xml") 
@Test(groups = { "logica", "models" }) 
public class ServeiDeutesTest extends AbstractTransactionalTestNGSpringContextTests { 


private DbTestPreparator preparadorDb; 
private IVwGptVBasicDao vwGptVBasicDAO; 


/** 
* Preparació de la base de dades abans d'iniciar les provatures 
*/ 
@BeforeMethod public void prepararProvatures() throws Exception 
{ 
    List<Map<String,Object>> patrons; 

    //Preparem la base de dades 
    //eliminem i omplim 
    ** preparadorDb.preparar();*** 
} 
/* 
* Funció per recuperar deutes bàsic. 
* 
* */ 
@Test 
public void comprovarBaseDeDadesOmplerta(){ 

    Assert.assertNull(vwGptVBasicDAO.obtenirDeutes(null, null, null)); 
    Assert.assertFalse(false); 
} 

我不明白爲什麼我有對象preparadorDb一個NULL;(我的get/set國際奧委會正確,我也嘗試與自動裝配Autowired ..)

這是應用程序上下文:

<bean id="connexioJdbctemplate" class="org.springframework.jdbc.core.JdbcTemplate"> 
     <constructor-arg type="javax.sql.DataSource" ref="dataSource"/> 
    </bean> 
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
     <property name="dataSource" ref="dataSource" /> 
    </bean> 

    <!-- creació en memoria de la bbdd 
    <jdbc:embedded-database id="dataSource"> 
     <jdbc:script location="classpath:schema.sql" /> 
     <jdbc:script location="classpath:test-data.sql"」 /> 
    </jdbc:embedded-database> 
    --> 
    <bean id="serveiDeutesTest" class="cat.base.gpt.logica.test.ServeiDeutesTest"> 
     <property name="vwGptVBasicDAO" ref="vwGptVBasicDAO" /> 
     <property name="preparadorDb" ref="preparadorDb" /> 
    </bean> 

    <bean id="gptServiceBO" class="cat.base.gpt.logica.serveis.GptService"> 
     <property name="vwGptVBasicDAO" ref="vwGptVBasicDAO" /> 
     <qualifier type="cat.base.gpt.domini.service.IGptService" value="gptServiceBO" /> 
    </bean> 


    <bean id="vwGptVBasicDAO" class="cat.base.gpt.logica.dao.impl.VwGptVBasicDao"> 
     <property name="jdbcTemplate" ref="connexioJdbctemplate" /> 
    </bean> 

    <bean id="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <!-- <property name="driverClassName" value="${cat.base.gpt.driverClassName}" />--> 
     <property name="driverClassName" value="org.hsqldb.jdbcDriver" /> 
     <!-- <property name="url" value="${cat.base.gpt.url}" />--> 
     <property name="url" value="jdbc:hsqldb:mem:provatures" /> 
     <property name="username" value="SA" /> 
     <property name="password" value="SA" /> 
</bean> 

<bean id="preparadorDb" class="cat.base.baseframe.utils.test.DbTestPreparator"> 
    <property name="arxiusSqlCreacio"> 
     <list> 
      <bean class="org.springframework.core.io.ClassPathResource"> 
       <constructor-arg type="java.lang.String" value="src/test/resources/database.sql" /> 
      </bean> 
     </list> 
    </property> 
    <property name="arxiusSqlCarrega"> 
     <list> 
      <bean class="org.springframework.core.io.ClassPathResource"> 
       <constructor-arg type="java.lang.String" value="src/test/resources/dades.sql" /> 
      </bean> 
     </list> 
    </property> 
    <property name="jdbcOperations" ref="connexioJdbctemplate" /> 
    <!-- <property name="executarCreacio" value="${cat.base.bfp.crearTaules}" />--> 
    <property name="executarCreacio" value="true" /> 
</bean> 



    <bean id="postprocess" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" > 
     <property name="locations"> 
      <list> 
       <value>classpath*:deutes-punts-logica.properties</value> 
       <value>classpath*:deutes-punts-test.properties</value> 
       <value>classpath*:entorn-servidor.properties</value> 
      </list> 
     </property> 
     <property name="ignoreResourceNotFound" value="true"/> 
    </bean> 

ty。

+0

檢查'@ Component'或'@ Repository'或' @服務「註釋。也許你忘了添加這個類。 – px5x2

+0

所以在類cat.base.baseframe.utils.test.DbTestPreparator這是必要的這種註釋? TY。 – ZaoTaoBao

回答

0

很好,對我來說這沒有任何意義,但拿起解決方案.. 終於我必須指定Autowired註釋@Autowired和getter和二傳手! 也許這是一個錯誤?我敢用這種狀況浪費了......

@Transactional 
@TransactionConfiguration(defaultRollback=true) 
@ContextConfiguration(locations="classpath*:applicationContext-deutes-punts-logica-Test.xml") 
//@Test(groups = { "logica" }) 
public class ServeiDeutesTest extends AbstractTransactionalTestNGSpringContextTests { 

    private Collection collection; 
    @Autowired 
    private IVwGptVBasicDao vwGptVBasicDAO; 
    @Autowired 
    private DbTestPreparator preparadorDb; 

public IVwGptVBasicDao getVwGptVBasicDAO() { 
     return vwGptVBasicDAO; 
    } 

    public void setVwGptVBasicDAO(IVwGptVBasicDao vwGptVBasicDAO) { 
     this.vwGptVBasicDAO = vwGptVBasicDAO; 
    } 

    public DbTestPreparator getPreparadorDb() { 
     return preparadorDb; 
    } 

    public void setPreparadorDb(DbTestPreparator preparadorDb) { 
     this.preparadorDb = preparadorDb; 
    } 

這個appCOntext

<bean id="serveiDeutesTest" class="cat.base.gpt.logica.ServeiDeutesTest"> 
     <property name="preparadorDb" ref="preparadorDb" /> 
     <property name="vwGptVBasicDAO" ref="vwGptVBasicDAO" /> 

    </bean> 

    <bean id="gptServiceBO" class="cat.base.gpt.logica.serveis.GptService"> 
     <property name="vwGptVBasicDAO" ref="vwGptVBasicDAO" /> 
     <qualifier type="cat.base.gpt.domini.service.IGptService" value="gptServiceBO" /> 
    </bean> 


    <bean id="vwGptVBasicDAO" class="cat.base.gpt.logica.dao.impl.VwGptVBasicDao"> 
     <property name="jdbcTemplate" ref="connexioJdbctemplate" />  
    </bean> 

    <bean id="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 

     <property name="driverClassName" value="${cat.base.gpt.driverClassName}" /> 
     <!-- <property name="driverClassName" value="org.hsqldb.jdbcDriver" />--> 
     <property name="url" value="${cat.base.gpt.url}" /> 
     <!-- <property name="url" value="jdbc:hsqldb:mem:provatures" />--> 
     <property name="username" value="SA" /> 
     <property name="password" value="SA" /> 
</bean> 

    <!-- baseframe.utils.test. gpt.logica--> 
<bean id="preparadorDb" class="cat.base.baseframe.utils.test.DbTestPreparator"> 
    <property name="arxiusSqlCreacio"> 
     <list> 
      <bean class="org.springframework.core.io.ClassPathResource"> 
       <constructor-arg type="java.lang.String" value="database.sql" /> 
      </bean> 
     </list> 
    </property> 
    <property name="arxiusSqlCarrega"> 
     <list> 
      <bean class="org.springframework.core.io.ClassPathResource"> 
       <constructor-arg type="java.lang.String" value="dades.sql" /> 
      </bean> 
     </list> 
    </property> 
    <property name="jdbcOperations" ref="connexioJdbctemplate" /> 
    <!-- <property name="executarCreacio" value="${cat.base.bfp.crearTaules}" />--> 
    <property name="executarCreacio" value="${cat.base.gpt.crearTaules}" /> 
</bean> 

我tstng版本是6.7 =