6.7 测试改进
- 为了支持 Spring TestContext Framework ,现在需要 JUnit 4.12 或者更高的版本
- 新的SpringRunner 是SpringJUnit4ClassRunner的别名
- 测试相关的注解,现在可以在接口上声明了。例如,基于 Java 8 的接口上使用测试接口
- 空声明的 @ContextConfiguration 现在将会完全忽略,如果检测到默认的 XML 文件, Groovy 脚本, 或 @Configuration 类型
- @Transactional 测试方法不再需要public (如, 在 TestNG 和 JUnit 5)
- @BeforeTransaction 和 @AfterTransaction不再需要public,并且在 基于 Java 8 的接口的默认方法上声明
- 在Spring TestContext Framework 的ApplicationContext的缓存现在有界为32默认最大规模和最近最少使用驱逐策略。最大的大小可以通过设置称为spring.test.context.cache.maxSize 一个 JVM 系统属性或 Spring 配置。
- ContextCustomizer API 用于自定义测试 ApplicationContext 在 bean 定义加载到上下文后但在上下文被刷新前。定制工具可以在全球范围由第三方进行注册,而无需要实现一个自定义的 ContextLoader。
- @Sql 和 @SqlGroup 现在作为元注解通过覆盖属性来创建自定义组合注解
- ReflectionTestUtils现在在 set 或 get 一个字段时,会自动解开代理。
- 服务器端的 Spring MVC 测试支持具有多个值的响应头。
- 服务器端的 Spring MVC 测试解析表单数据的请求内容和填充请求参数。
- 服务器端的 Spring MVC 测试支持 mock 式的断言来调用处理程序方法。
- 客户端 REST 测试支持允许指定多少次预期的请求以及期望的声明顺序是否应该被忽略(参见15.6.3,“客户端REST测试”)。
- 客户端 REST 测试支持请求主体表单数据的预期。