Java 使用testNG、spring和hsqldb进行测试
我正在尝试使用Emmbed内存数据库hsqldb版本2.2.8测试一个应用程序 这是我的测试课,我有一个错误,我不知道如何解决它Java 使用testNG、spring和hsqldb进行测试,java,spring,maven,testng,Java,Spring,Maven,Testng,我正在尝试使用Emmbed内存数据库hsqldb版本2.2.8测试一个应用程序 这是我的测试课,我有一个错误,我不知道如何解决它 @Transactional @TransactionConfiguration(defaultRollback=true) @ContextConfiguration(locations="classpath*:applicationContext-deutes-punts-logica-Test.xml") @Test(groups = { "logica", "
@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);
}
@Transactional
@TransactionConfiguration(defaultRollback=true)
@ContextConfiguration(locations=“classpath*:applicationContext deutes punts logica Test.xml”)
@测试(组={“logica”,“models”})
公共类ServeItemTest扩展了AbstractTransactionalTestNGSpringContextTests{
私有DbTestPreparator preparadorDb;
私人IVwGptVBasicDao vwGptVBasicDAO;
/**
*准备好课程的基本要求
*/
@BeforeMethod public void prepararProvatures()引发异常
{
列出顾客名单;
//戴德斯基地酒店
//伊莱米尼姆·奥姆普林
**preparadorDb.preparar()***
}
/*
*重复使用氘的功能。
*
* */
@试验
公共无效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>
类路径*:deutes-punts-logica.properties
类路径*:deutes-punts-test.properties
类路径*:entorn-servidor.properties
ty.uff好吧,对我来说,这没有意义,只能选择解决方案。。 最后,我必须指定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检查您的
@组件
或@存储库
或@Service
注释。可能您忘记添加此类。因此,在类cat.base.baseframe.utils.test.DbTestPreparator中,有必要添加此类注释。