H5W3
当前位置:H5W3 > 其他技术问题 > 正文

单元测试中,测试的数据应该如何准备?

1、如何准备测试所需要的数据?
2、测试的数据应该放在哪里?
3、正式环境迭代是否需要再次测试?

我用的是Spring,现在的测试是这样进行的,个人感觉十分不灵活,想咨询一下大家都是怎么测试的?

1、在test/resources目录下有两个文件before.sql,after.sql。怎么用的呢,测试之前执行before.sql生成测试所需要的数据,测试完了执行after.sql删除为了测试产生的数据。
2、有了基础数据之后,针对不同种类的数据就可以做各种异常判断的测试啦。

上面是我现在的测试方式,问题很多。首要的就是十分不灵活,一旦数据表有所改动,测试数据就得跟着改。再者,需要清理干净测试的数据其实挺麻烦的。

不知道大家是怎么进行测试的,有没有更简单方便的方法?

回答:

可使用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>

回答:

用spring的话,可以直接用@TransactionConfiguration注解来配置测试数据是否要回滚,这样就不用你自己去删除测试数据了。比如

@TransactionConfiguration(transactionManager = "mybatisTransactionManager", defaultRollback = true)

回答:

贴一个我现在正在用的测试超类吧

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
        "classpath:spring.xml"
})
@Transactional
@TransactionConfiguration(transactionManager="transactionManager", defaultRollback=true)
public class AbstractDrugTest extends AbstractTransactionalJUnit4SpringContextTests{

}

子类里给每个需要的表写入数据,在一个用例结束以后,Spring 会帮助自动回滚数据的。

本文地址:H5W3 » 单元测试中,测试的数据应该如何准备?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址