@Repository
publicclassMyBatisAngelWangimplementsIRepository{
@Autowired
privateGeneralDAO generalDAO;
public<T extendsBase> T get(Class<T> clz,Long id){
HashMap hashMap= generalDAO.getLogically(clz, id);
T ret=this.convert(hashMap, clz);
return ret;
}
}
import org.testng.annotations.Test;
//@DatabaseSetup(value= "/dbunitData/TestAngelEntity.xml")publicclassMyBatisAngelWangTestextendsAbstractRollbackTest{
@Autowired
privateMyBatisAngelWang myBatisAngelWang;
@Test(enabled=false)
publicvoid testGet(){
}
}
10年积累的成都网站建设、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有尉犁免费网站建设让你可以放心的选择与我们合作。import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestExecutionListeners;
@ContextConfiguration(locations={"classpath:spring-datasource-dbunit.xml",
"classpath*:spring-services.xml"})
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class,
TransactionDbUnitTestExecutionListener.class,TransactionalTestExecutionListener.class})
@Transactional
publicclassAbstractRollbackTestextendsAbstractTestNGSpringContextTests{
}
@ContextConfiguration("/config/Spring-db.xml")
@Transactional
@ActiveProfiles("test")
publicclassMyBatisAngelWangTestextends
AbstractTransactionalTestNGSpringContextTests{}
<?xml version="1.0" encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.2.xsd"default-autowire="byName">
<description>spring-datasource-configuration</description>
<beanclass="com.angel.context.ApplicationContextAwareHelper"/>
<!-- 定义事务管理器(声明式的事务) -->
<beanid="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<propertyname="dataSource"ref="dataSource"/>
</bean>
<tx:annotation-driventransaction-manager="transactionManager"/>
<beanid="propertyConfigurer"class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
<propertyname="locations">
<list>
<value>classpath*:props/datasource_dev.properties</value>
</list>
</property>
</bean>
<beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<propertyname="driverClassName"value="${jdbc.driver}"/>
<propertyname="url"
value="${jdbc.dbunit.url}"/>
<propertyname="username"value="${jdbc.user}"/>
<propertyname="password"value="${jdbc.password}"/>
</bean>
<!-- MyBatis 配置 -->
<beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer">
<propertyname="basePackage"value="com.angel.*.dao"/>
<propertyname="sqlSessionFactoryBeanName"value="xSqlSessionFactory"/>
</bean>
<beanid="xSqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">
<propertyname="dataSource"ref="dataSource"/>
<propertyname="typeAliasesPackage"value="com.angel.*.entities"/>
<propertyname="configLocation"value="classpath:mybatis/mybatis-config.xml"/>
<propertyname="mapperLocations"value="classpath:/com/angel/dao/*.xml"/>
<propertyname="plugins">
<array>
<!--page interceptor-->
<beanclass="com.angel.orm.db.QueryInterceptor"/>
</array>
</property>
</bean>
<tx:annotation-driventransaction-manager="transactionManager"/>
</beans>
这样大家测试的数据库都是同一个了,也不会有任何的相互影响了。因为事务回滚了,不信的话可以提交一条Insert测试哦,执行完后查看数据库中并没有插入任何数据。然而,在一个单元测试中,先Insert再get是可以取到数据的,神奇吧?!
publicclassApplicationContextAwareHelperimplementsApplicationContextAware{
privatestaticApplicationContext context;
@Override
publicvoid setApplicationContext(ApplicationContext applicationContext){
context= applicationContext;
}
publicstaticApplicationContext getContext(){
return context;
}
}
DruidDataSource dataSource =ApplicationContextAwareHelper.getBean("dataSource_"+ dataSources[i]);
当然,这不属于单元测试的范畴了,有点跑题,但是蛮有用的,在这里记一下。
王安琪,英文名Angel,南京邮电大学计算机应用技术硕士学位。 熟悉Java、C#编程语言。专注于WebService、海量数据处理、搜索引擎技术、消息中间件技术、分布式文件存储、.NET应用程序开发、系统架构设计。主要从事大数据管理系统的研发,项目经理,系统架构师,就职于江苏金陵科技集团有限公司。
Email:aitanjupt@hotmail.com
QQ:289770363
当前题目:关于单元测试及项目质量管理的总结-创新互联
标题来源:/article20/dgojjo.html
成都网站建设公司_创新互联,为您提供品牌网站建设、用户体验、标签优化、网站收录、外贸建站、全网营销推广
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联