我们有一个基于Spring的JUnit测试类,它正在利用一个内部的测试上下文配置类。
是否有一种方法可以实现一个测试类中的某些测试方法使用一个配置类,而其他方法使用另一个配置类?@ContextConfiguration似乎只适用于类级别,因此解决方案可能是为新测试创建另一个测试类,该测试类将利用自己的上下文配置类;但这意味着同一个Service类将通过两个不同的测试类进行覆盖。
@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似乎只适用于类级别,因此解决方案可能是为新测试创建另一个测试类,该测试类将利用自己的上下文配置类;但这意味着同一个Service类将通过两个不同的测试类进行覆盖。
@Autowired
。我尽可能避免在测试中进行注入,因为这会减慢测试速度并使情况变得更加复杂。当IDE支持“运行测试时展示我注入了什么”,我会改变我的想法。 - Aaron Digulla