我们这是利用内部测试情况下配置类对于不同的测试方法
@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 {
...
新的功能已经被最近推出的服务类基于Spring的JUnit测试类,为此,有关的测试应该被添加到ServiceTest。然而,这些还需要创建不同的测试环境配置类(现有Config类的内部相当复杂,并且将其更改为服务于新旧测试似乎是极其困难的,如果可能的话,似乎是极其困难的)
有没有办法在一个测试类中实现某些测试方法将使用一个配置类而其他方法会使用另一个? @ContextConfiguration
似乎只适用于类的级别,所以解决方案可以为新的测试创建另一个测试类,它将利用自己的上下文配置类;但是这将意味着,同样的服务类通过两个不同的测试类
但是,如果我们手动设置在内部,Autowired注入是否在基类中工作? – pinkpanther
@pinkpanther:你正在测试设置与测试代码混淆。测试设置不使用'@ Autowired'。当我可以的时候,我在测试中避免注入:它减慢了测试的速度,并且更难以看出发生了什么。当IDE支持“当我运行测试时向我显示注入的内容”时,我会改变主意。 –