28、Spock框架的集成与功能测试实战

Spock框架的集成与功能测试实战

1. Spock与Spring测试集成

在使用Spock进行Spring测试时,即使测试过程中对数据库的数据进行了删除或修改操作,这些更改在测试套件结束时也不会被持久化。这一功能由Spring提供,而Spock对此并不感知。

总结来说,Spock对Spring测试的支持非常简单,只需使用Spring测试注解标记测试即可。如果你曾使用 SpringJUnit4ClassRunner 编写过JUnit测试,那么使用Spock进行Spring测试会让你感到非常熟悉。

2. 缩小Spock测试中的Spring上下文

在编写Spring集成测试时,会发现一些Spock测试存在两个严重的缺陷:
- 测试与生产代码使用相同的数据库 :这通常不是理想的做法,有时由于安全限制甚至是不可行的。
- Spring上下文初始化所有Java类 :即使并非所有类都在Spock测试中使用。例如,在Swing应用程序中,Spock测试会创建用于GUI的Swing类,即使你从未测试过GUI。这样的测试在无头机器(如构建服务器)上可能无法轻松运行。

推荐的解决方案是为测试使用不同的Spring上下文。生产上下文包含应用程序的所有类,而测试上下文只包含被测试的类的一个子集。可以创建第二个XML文件来实现这一点,如下所示:

<jdbc:embedded-database id="dataSource" type="H2"/>
</
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值