2016-08-03 12 views
6

Spring Boot 1.4には、アプリケーションのWebスライスをテストするために必要な部品を結ぶ@WebMvcTestが追加されました。これは素晴らしいですが、カスタムフィルタとセキュリティコードが確実に組み込まれていることを確認して、正しく動作していることを確認することもできます。@WebMvcTestを使用する方法と、独自のカスタムフィルタを追加する方法はありますか?

@WebMvcTestを使用してカスタムフィルタを追加するにはどうすればよいですか?現在でspring.factoriesを参照してください(以下の自動設定のクラスをインポート

@Autowired 
private WebApplicationContext context; 

@Autowired 
private FilterChainProxy springSecurityFilter; 

@Before 
public void setup() { 
    mockMvc = MockMvcBuilders 
      .webAppContextSetup(context) 
      .addFilters(springSecurityFilter) 
      .apply(SecurityMockMvcConfigurers.springSecurity()) 
      .build(); 
} 

答えて

0

あなたは、プレーンSpting Frameworkの機能を使用して、このような何かを行うことができ、指摘spring-boot-test-autoconfigure瓶):このリストMockMvcSecurityAutoConfigurationのうち

# AutoConfigureMockMvc auto-configuration imports 
org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc=\ 
org.springframework.boot.test.autoconfigure.web.servlet.MockMvcAutoConfiguration,\ 
org.springframework.boot.test.autoconfigure.web.servlet.MockMvcSecurityAutoConfiguration,\ 
org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebClientAutoConfiguration,\ 
org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebDriverAutoConfiguration 

は、自動的にセキュリティフィルターとの統合を提供します。

追加のフィルタのサポートを追加する必要がある場合は、独自のMockMvcBuilderCustomizer(インスピレーションの場合はMockMvcSecurityConfiguration.SecurityMockMvcBuilderCustomizerを参照)を記述することができます。

ネストされた@TestConfigurationクラスを使用すると、カスタマイザを特定のテストにフックすることができます。spring.factoriesを追加し、AutoConfigureMockMvcキーを使用してすべてのテストに自動的に追加することができます。

3

@AutoConfigureWebMvc:ウェッブ@Phil春ブートオプションに加えて

1

@WebMvcTestをSpring Securityとカスタムフィルタで使用すると、自動的にMockMvcインスタンスに構成されます。これはrwinch/spring-boot-sample/tree/so-38746850-webmvctest-customfiltersで動作しています。具体的には、DemoApplicationTestsは、Spring Securityが適切にセットアップされ、カスタムフィルタが設定されていることを示しています。

FilterがすべてSpringBootMockMvcBuilderCustomizer.addFiltersを使用して自動的に追加されます。

MockMvcSecurityConfigurationはすなわちMockMvcインスタンスに春のセキュリティのSecurityMockMvcRequestPostProcessors.testSecurityContext()を追加することにより、@MockUserを使用できます(セットアップ春のセキュリティのテストのサポートに使用されている。

関連する問題