2016-08-03 16 views
6

Spring Boot 1.4, uygulamamın bir web dilimini sınamak için gereken parçaları bağlayan @WebMvcTest ekledi. Bu harika, ancak aynı zamanda özel filtrelerimin ve güvenlik kodunun da doğru şekilde çalıştığından emin olmak istiyorum.@WebMvcTest'i nasıl kullanabilirim ve kendi özel filtrelerimi nasıl ekleyebilirim?

@WebMvcTest kullanırken özel filtrelere nasıl ekleyebilirim? (Içinde spring.factories bakınız

@Autowired 
private WebApplicationContext context; 

@Autowired 
private FilterChainProxy springSecurityFilter; 

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

cevap

0

düz Spting Çerçeve özelliklerini kullanmak ve böyle bir şey yapabilir, işaret spring-boot-test-autoconfigure kavanoz): Bu listedeki MockMvcSecurityAutoConfiguration Out

# 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 

otomatik güvenlik filtresi ile entegrasyonunu sağlayacak.

Ek filtreler için destek eklemeniz gerekiyorsa, kendi MockMvcBuilderCustomizer numaranızı yazabilirsiniz (ilham almak için bkz. MockMvcSecurityConfiguration.SecurityMockMvcBuilderCustomizer).

Belirli bir teste özelleştiricinizi kanca iç içe @TestConfiguration sınıfını kullanabilirsiniz ya, size spring.factories kendi ekleyin ve otomatik olarak tüm testler eklemek için AutoConfigureMockMvc tuşunu kullanabilirsiniz.

3

@AutoConfigureWebMvc anda aşağıdaki otomatik yapılandırma sınıfları içe: Bahar Önyükleme seçenekleri @Phil Webb ek olarak

1

Spring Security ve özel bir Filtre ile @WebMvcTest kullanırken, otomatik olarak MockMvc örneğine yapılandırılır. Bu çalışmayı rwinch/spring-boot-sample/tree/so-38746850-webmvctest-customfilters'da görebilirsiniz. Spesifik olarak, DemoApplicationTests, Spring Security'nin düzgün şekilde kurulduğunu ve özel filtrenin ayarlandığını gösterir.

Spring Boot, otomatik olarak tüm Filter s eklerini SpringBootMockMvcBuilderCustomizer.addFilters kullanarak kurar.

MockMvcSecurityConfiguration

yani Yay Güvenlik en SecurityMockMvcRequestPostProcessors.testSecurityContext() MockMvc örneğine eklenmesiyle @MockUser kullanarak verir (kurulum Spring Security test desteği için kullanılır.

İlgili konular