1、如何准备测试所需要的数据?
2、测试的数据应该放在哪里?
3、正式环境迭代是否需要再次测试?
我用的是Spring,现在的测试是这样进行的,个人感觉十分不灵活,想咨询一下大家都是怎么测试的?
1、在test/resources
目录下有两个文件before.sql
,after.sql
。怎么用的呢,测试之前执行before.sql
生成测试所需要的数据,测试完了执行after.sql
删除为了测试产生的数据。
2、有了基础数据之后,针对不同种类的数据就可以做各种异常判断的测试啦。
上面是我现在的测试方式,问题很多。首要的就是十分不灵活,一旦数据表有所改动,测试数据就得跟着改。再者,需要清理干净测试的数据其实挺麻烦的。
不知道大家是怎么进行测试的,有没有更简单方便的方法?
贴一个我现在正在用的测试超类吧
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath:spring.xml"
})
@Transactional
@TransactionConfiguration(transactionManager="transactionManager", defaultRollback=true)
public class AbstractDrugTest extends AbstractTransactionalJUnit4SpringContextTests{
}
子类里给每个需要的表写入数据,在一个用例结束以后,Spring 会帮助自动回滚数据的。
用spring的话,可以直接用@TransactionConfiguration注解来配置测试数据是否要回滚,这样就不用你自己去删除测试数据了。比如
@TransactionConfiguration(transactionManager = "mybatisTransactionManager", defaultRollback = true)
可使用HSQLDB或者H2来进行单元测试,每次启动单元测试,HSQLDB或H2所生成的数据库都是初始化的,不必再让你before、after。
如果是集成在spring中
<jdbc:initialize-database data-source="dataSource">
<jdbc:script location="createTable.sql"/> <!--创建表脚本-->
<jdbc:script location="insertData.sql"/> <!--插入数据脚本-->
</jdbc:initialize-database>