2013-07-23 3 views
0

Я пытаюсь протестировать приложение с памятью с памятью памяти, hsqldb версии 2.2.8.тестирование с testNG, spring и 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); 
} 

Я не понимаю, почему у меня есть NULL с объекта preparadorDb; (я получить/установить в IoC правильно, я тоже попробовать с 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 нужны такие аннотации? ти. – ZaoTaoBao

ответ

0

uff хорошо, для меня это не имеет смысла, но забрать решение .. наконец я должен указать Autowired annotation @Autowired и getter and setter !! Возможно, это ошибка? Я довольно впустую с этой ситуацией ...

@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; 
    } 

это в контекст приложения

<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

Смежные вопросы