Моего тестового класса выглядит следующим образомWebApplicationContext всегда нуль в тесте весной загрузки
@SpringBootTest(webEnvironment=WebEnvironment.MOCK)
public class sampleClassTest{
@Autowired
private WebApplicationContext wac;
}
@Before
public void setup() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
}
В способе настройки WAC всегда нуль. Из весенней загрузки документации, @SpringBootTest(webEnvironment=WebEnvironment.MOCK)
всегда создавал макет WebapplicaitonContext
.
Так что я ожидал бы, что он будет автоуведомлен в коде выше, которого не произойдет.
Может ли кто-нибудь сказать мне, как сделать создание webapplicationContext
в этом случае, чтобы он не был нулевым, как в моем случае?
UPDATE
Я бег тестов загрузки пружинных их вызов из класса с springboot аннотацией.
Оба теста (springboottest) и вызов класса (springboot) применяются в том же весеннем загрузочном проекте под номером src/main/java
.
У меня ничего нет src/main/test
. Я сделал так, потому что если классы из src/main/java
хотят вызвать тестовый класс, это не действительно тестовый класс.
Теперь проблема заключается в том, что я не могу использовать runWith(SpringRunner.class)
в классе springbootTest. Если бы я сделал это, чтобы получить макет webApplicationContext
то, что это дает мне эту ошибку:
javax.management.InstanceAlreadyExistsException: org.springframework.boot:type=Admin,name=SpringApplication
Я не уверен, как это сделать по этому поводу.
Добавить '@ WebAppContext' в тестовый пример. Однако вы также можете просто '@ Autowire' класс' MockMvc' с Spring Boot (вам не нужно создавать его вручную). –
Мне все еще нужен webApplicationContext для регистрации beans in to. Поэтому моя главная проблема - получить webApplicationContext. – Hary