Инициализировать bean-компоненты во внутреннем классе статического теста в springBoot

Я использую вложенные классы для написания модульных тестов в весенней загрузке. Мой тестовый файл:

@RunWith(NestedRunner.class)
@SpringBootTest
@TestInstance
@AutoConfigureMockMvc
public class OuterTestCase {

        public static class InnerTestCases {

             @Autowired
             private RestTemplate restTemplate;
             @Autowired
             private MockMvc mockMvc;

             @Test
             public void testcase(){
              //do Something
             }
        }
}

Но я получаю NPE при попытке использовать RestTemplate внутри метода testCase.

Я не могу инициализировать bean-компоненты внутри внутреннего класса.


person Master Developer    schedule 19.12.2020    source источник
comment
Отвечает ли это на ваш вопрос? @Autowired не работает во внутреннем классе   -  person Randy Casburn    schedule 19.12.2020
comment
В основном нужно аннотировать внутренний статический класс как какой-то компонент - возможно, @Component. В противном случае вам придется управлять зависимостями самостоятельно.   -  person Randy Casburn    schedule 19.12.2020
comment
добавление компонента bean также не работает. @RandyCasburn А также я проверил приведенную выше ссылку, но это тоже не ответило на мой вопрос.   -  person Master Developer    schedule 19.12.2020


Ответы (1)


Статический класс инициализируется на ранних этапах загрузки класса. Если класс Autowired не был инициализирован с использованием статического класса, вы столкнетесь с указанной выше ошибкой.

person vishnu g    schedule 19.12.2020