См. этот документ первым.У меня есть приложение с несколькими тестовыми классами, расширяющими абстрактный класс, например:
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
и т. д., не повезло,Затем я столкнулся с этой проблемой и попробовал это с тем, что вы видите выше:
@SpringBootTest(classes=AbstractClass.TestSpringConfiguration.class)
и это работает!
Однако, это заставляет меня задуматься, почему 1019 * это работает?Я вижу много примеров в Интернете, где они используют статический внутренний класс с @TestConfiguration
и не имеют установленного элемента classes
.На самом деле, я почти не видел упомянутого элемента, кроме документов.Теперь вот настоящий кикер: у меня есть отдельное приложение, идентичное рассматриваемому практически во всех отношениях, но оно работает без элемента.
Кто-нибудь знает, что может повлиять на это?Разве это не должно быть автоматическим?
Я нахожусь на Spring Boot 1.5 (не мой выбор, и да, я знаю, что документ, связанный выше - 2.x), Spring 4.3 и JUnit 4.