我的测试课看起来像这样
@SpringBootTest(webEnvironment=WebEnvironment.MOCK)
public class sampleClassTest{
@Autowired
private WebApplicationContext wac;
}
@Before
public void setup() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
}
在 setup 方法中,wac 始终为空。从 spring boot 文档中,@SpringBootTest(webEnvironment=WebEnvironment.MOCK)
总是创建一个 mock WebapplicaitonContext
。
所以我希望它在上面的代码中自动装配,这不会发生。
有人可以告诉我如何webapplicationContext
在这种情况下创建一个,以便它不像我的情况那样为空吗?
更新
我正在运行 spring boot 测试,从带有 springboot 注释的类中调用它们。
测试(springboottest)和调用类(springboot)应用程序都在同一个spring boot项目下src/main/java
。
我下面什么都没有src/main/test
。我这样做是因为如果来自的类src/main/java
想要调用测试类,那么它并不是真正的测试类。
现在,问题是我不能runWith(SpringRunner.class)
在 springbootTest 类中使用。如果我这样做是为了得到一个模拟webApplicationContext
,它会给我这个错误:
javax.management.InstanceAlreadyExistsException: org.springframework.boot:type=Admin,name=SpringApplication
我不知道该怎么做。