При каких обстоятельствах @SpringBootTest требуется дополнительный элемент "classes"? - PullRequest
0 голосов
/ 23 января 2019

См. этот документ первым.У меня есть приложение с несколькими тестовыми классами, расширяющими абстрактный класс, например:

    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.

...