请先参见this doc。 我有一个带有几个测试类的应用程序,它扩展了像这样的抽象类:
public class TestClass extends AbstractClass {
@Autowired
private ClassToTest classToTest;
...
//Some tests
抽象类的设置如下:
@SpringBootTest
@RunWith(SpringRunner.class)
@ActiveProfiles("test")
public abstract class AbstractClass {
@BeforeClass
public static void initialize() {
//Section 1
}
@TestConfiguration
public static class TestSpringConfiguration {
@Bean
public SomeBean someBean() {
//Section 2
}
...
每次运行测试都失败,我可以在第1节中看到一个断点,但在第2节中却看不到。我尝试了几种类似的设置,包括扩展/不扩展,并且将@SpringBootTest
移动到我的TestClass
等,祝您好运。然后我碰到了this issue,并尝试了以上所见:
@SpringBootTest(classes=AbstractClass.TestSpringConfiguration.class)
它有效!
但是,这让我感到奇怪,为什么它有效?我在网上看到许多示例,这些示例使用带有@TestConfiguration
的静态内部类,而没有设置classes
元素。实际上,除了文档之外,我几乎看不到提到的元素太多。现在,这才是真正的关键:我有一个单独的应用程序,几乎在所有方面都与所讨论的应用程序相同,但是它确实可以在没有元素的情况下运行。
有人对这可能会影响什么有任何线索吗?这不应该是自动的吗?
我使用的是Spring Boot 1.5(不是我的选择,是的,我知道上面链接的文档是2.x),Spring 4.3和JUnit 4。