【发布时间】:2016-05-07 07:45:18
【问题描述】:
我们有一个基于 Spring 的 JUnit 测试类,它利用了一个内部测试上下文配置类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = ServiceTest.Config.class)
public class ServiceTest {
@Test
public void someTest() {
...
@Configuration
@PropertySource(value = { "classpath:application.properties" })
@ComponentScan({ "..." })
public static class Config {
...
最近向 Service 类引入了新功能,应将相关测试添加到 ServiceTest。然而,这些也需要创建不同的测试上下文配置类(现有 Config 类的内部相当复杂,如果可能的话,将其更改为同时服务于新旧测试似乎非常困难)
有没有办法实现一个测试类中的某些测试方法使用一个配置类而其他方法使用另一个? @ContextConfiguration 似乎只适用于类级别,因此解决方案可能是为新测试创建另一个测试类,该类将利用其自己的上下文配置类;但这意味着同一个服务类被两个不同的测试类覆盖
【问题讨论】:
标签: java spring junit junit4 spring-test