我们正在从Spring Boot 1.5.x升级到Spring Boot 2.x,并且在测试配置方面遇到困难。我们的情况与我在SO上看到的其他情况略有不同,因为我们使用了超类和注释。举一个简单的例子,组件扫描选择了src中定义的DbConfig类,但是测试中有一个EmbeddedDbConfig类应该覆盖生产Bean:
@Import({OneConfig.class, TwoConfig.class})
@MockService
public class DefaultSampleTest extends AbstractDbTest {
...
}
@SpringBootTest(classes = {
EmbeddedDbConfig.class
})
@EmbeddedDbMaster
@RunWith(SpringRunner.class)
public abstract class AbstractDbTest {
...
}
当项目基于Spring Boot 1时,测试将使用EmbeddedDbConfig中定义的嵌入式数据库进行初始化;在Spring Boot 2中,我们改用了DbMaster配置,并且从不触摸EmbeddedDbConfig。 (@MockService和@EmbeddedDbMaster是应该导入单独的测试配置的批注,但可能不相关,因为在此之前运行会失败。)是否缺少格式或语法来以共享方式覆盖配置? ,也就是说,是否将静态类放置在每个测试类的内部?