Spring REST Docs настраивает MockMvc со статическим классом конфигурации - PullRequest
0 голосов
/ 22 января 2019

Справочные руководства Spring REST Docs по настройке MockMvc с использованием автоматического подключения ApplicationContext:

@Before
public void setUp() {
    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
        .apply(documentationConfiguration(this.restDocumentation))
        .alwaysDo(document("{method-name}/{step}/")).build();
}

и в этом блоге описано, как использовать статические @Configuration классы. Однако, используя такой статический класс, автопроводной контекст не является контекстом, созданным из этого класса. Кажется, этот класс игнорируется.

Есть ли способ объединить эти два?

1 Ответ

0 голосов
/ 27 января 2019

Я обновил свою конфигурацию, и теперь она работает как положено.

@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 настроен контекст приложения, созданный из класса статической конфигурации, как и ожидалось.

...