2016-08-03 7 views
6

वसंत बूट 1.4 जोड़ा @WebMvcTest जो मेरे आवेदन के एक वेब टुकड़े का परीक्षण करने के लिए आवश्यक भागों को तारित करता है। यह शानदार है, हालांकि मैं यह भी सुनिश्चित करना चाहता हूं कि मेरे कस्टम फ़िल्टर और सुरक्षा कोड को तार दिया गया है, इसलिए मैं मान्य कर सकता हूं कि यह भी सही ढंग से काम कर रहा है।मैं @WebMvcTest का उपयोग कैसे कर सकता हूं और अपने स्वयं के कस्टम फ़िल्टर में भी जोड़ सकता हूं?

@WebMvcTest का उपयोग करते समय मैं कस्टम फ़िल्टर में कैसे जोड़ सकता हूं?

उत्तर

0

स्प्रिंग बूट विकल्प @Phil वेब के अलावा ने कहा, आप सादे Spting फ्रेमवर्क सुविधाओं का उपयोग और कुछ इस तरह कर सकते हैं:

@Autowired 
private WebApplicationContext context; 

@Autowired 
private FilterChainProxy springSecurityFilter; 

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

@AutoConfigureWebMvc वर्तमान में निम्न स्वत: विन्यास वर्गों आयात (में spring.factories देखना spring-boot-test-autoconfigure जार):

# 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 
इस सूची MockMvcSecurityAutoConfiguration से

स्वचालित रूप से सुरक्षा फिल्टर के साथ एकीकरण प्रदान करेगा।

यदि आपको अतिरिक्त फ़िल्टर के लिए समर्थन जोड़ने की आवश्यकता है तो आप अपना खुद का MockMvcBuilderCustomizer लिख सकते हैं (प्रेरणा के लिए MockMvcSecurityConfiguration.SecurityMockMvcBuilderCustomizer देखें)।

आप नेस्टेड @TestConfiguration वर्ग का उपयोग कर सकते या तो एक विशेष परीक्षा में आपका कस्टमाइज़ हुक करने के लिए, आप आप अपने खुद के spring.factories जोड़ सकते हैं और स्वचालित रूप से सभी परीक्षणों में जोड़ने के लिए AutoConfigureMockMvc कुंजी इस्तेमाल कर सकते हैं।

1

वसंत सुरक्षा और कस्टम फ़िल्टर के साथ @WebMvcTest का उपयोग करते समय, यह स्वचालित रूप से MockMvc उदाहरण में कॉन्फ़िगर किया जाएगा। आप इसे rwinch/spring-boot-sample/tree/so-38746850-webmvctest-customfilters में देख सकते हैं। विशेष रूप से, DemoApplicationTests दर्शाता है कि वसंत सुरक्षा ठीक से सेटअप है और कस्टम फ़िल्टर सेटअप है।

वसंत बूट स्वचालित रूप से सभी Filter एस SpringBootMockMvcBuilderCustomizer.addFilters का उपयोग कर सेटअप जोड़ता है।

MockMvcSecurityConfiguration सेटअप स्प्रिंग सुरक्षा के परीक्षण के समर्थन के लिए इस्तेमाल किया जाता है (यानी @MockUser का उपयोग कर की अनुमति देता है वसंत सुरक्षा के SecurityMockMvcRequestPostProcessors.testSecurityContext()MockMvc उदाहरण के लिए जोड़कर।

संबंधित मुद्दे

 संबंधित मुद्दे