0

我正在尝试使用嵌入式内存数据库 hsqldb 2.2.8 版测试应用程序。

这是我的测试课,我有一个错误,我不知道如何解决。

@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;(我已经正确地获取/设置为 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>

泰。

4

1 回答 1

0

嗯,对我来说这没有任何意义,但选择解决方案.. 最后我必须指定 Autowired 注释 @Autowired 和 getter 和 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;
    }

这是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

于 2013-07-24T11:42:57.817 回答