Spring REST Docs参考指南使用自动连接的ApplicationContext
来设置MockMvc:
@Before
public void setUp() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
.apply(documentationConfiguration(this.restDocumentation))
.alwaysDo(document("{method-name}/{step}/")).build();
}
在this博客中描述了如何使用静态@Configuration
类。
但是,使用此类静态类,自动装配上下文不是从此类创建的上下文。似乎此类被忽略了。
有没有办法将两者结合起来?
答案 0 :(得分:0)
我已经更新了配置,并且现在可以按预期运行。
@ContextConfiguration
@RunWith(SpringRunner.class)
public class SpringTest {
@Autowired
private WebApplicationContext webApplicationContext;
private MockMvc mockMvc;
@Before
public void setUp() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
}
... test methods ...
@Configuration
@ComponentScan(basePackages = "my.package")
@Import(SecurityConfiguration.class)
public static class Config {
@Bean
@Qualifier("myService")
... replace implementation of myService with test implementation...
}
}
现在,按预期使用从静态配置类创建的应用程序上下文来配置MockMvc。
答案 1 :(得分:0)
或者您可以只使用@AutoConfigureRestDocs