关于单元测试及项目质量管理的总结
作者:网络转载 发布时间:[ 2016/1/21 14:46:28 ] 推荐标签:单元测试 质量管理
三、供给单元测试的专用spring配置文件:spring-datasource-dbunit.xml
<?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.xsd http://www.springframework.org/schema/tx http://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是可以取到数据的,神奇吧?!
四、其它:ApplicationContextAwareHelper.class
publicclassApplicationContextAwareHelperimplementsApplicationContextAware{ privatestaticApplicationContext context; @Override publicvoid setApplicationContext(ApplicationContext applicationContext){ context = applicationContext; } publicstaticApplicationContext getContext(){ return context; } }
当我们需要比较动态的获取某些bean时,需要ApplicationContextAwareHelper类。比如说,我要自己拼接一个bean的名称,还要获得该bean,则可以使用下面的代码来获取:
DruidDataSource dataSource =ApplicationContextAwareHelper.getBean("dataSource_"+ dataSources[i]);
当然,这不属于单元测试的范畴了,有点跑题,但是蛮有用的,在这里记一下。
五、项目质量管理
通过上面数步能够很好的实施单元测试了。
然而单元测试说来容易,执行难,有方法了,但推进它又是另外一件事了。在互联网公司中,很多个小项目并发进行,同时存在,项目成员亦流动性较大,相近的项目会分布在各项目组中。这样,每个小项目组可能有其自己的规范或是没有。规范像法律一样,是个人素质的底线、低层约束。项目开发成员素质较高还好,可能不会引起混乱,当项目组成员多了,素质参差不齐麻烦了。这时需要执行项目经理职能的角色出现了。这时项目经理可以且应该具体要求各小组的开发流程、规范。在互联网项目中没有项目经理存在的情况下,可以由行政层面或配置项目管理专员来实现。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11