2016-03-11 12 views
6

के साथ मिलकर यूनिट परीक्षण मार्ग मैं एक प्रतिक्रिया अनुप्रयोग के लिए यूनिट परीक्षण जोड़ने की कोशिश कर रहा हूं और रिएक्ट राउटर (2.0.1) द्वारा प्रदान किए गए मार्गों का परीक्षण करना चाहता हूं। मैं यह जांचना चाहता हूं कि मेरे द्वारा आपूर्ति किए जाने वाले विशिष्ट पथ एक मार्ग से मेल खाते हैं या नहीं। मैं मोचा का उपयोग करके अपने परीक्षण लिख रहा हूं और उम्मीद करता हूं।रिएक्ट राउटर 2

मैंने रिएक्ट राउटर रिपोजिटरी पर प्रलेखन को देखा है, लेकिन एकमात्र परीक्षण मार्गदर्शिका जिसे मैं देख सकता था, यह बता रहा था कि <Link /> और इसे कैसे प्रस्तुत किया जाए। मैं कैसे जांच कर सकते हैं कि routes चर में बनाए गए मार्गों निम्नलिखित मेल खाएंगे

// import statements omitted for brevity 

export const routes = (
    <Route path="/" component={App}> 
     <IndexRoute component={Index} /> 
     <Route path="/foo"> 
      <IndexRoute component={FooIndex} /> 
      <Route path="add" component={FooAdd} /> 
      <Route path=":fooId" component={FooDetails} /> 
     </Route> 
    </Route> 
) 

ReactDOM.render(
    <Router history={browserHistory}>{routes}</Router>, 
    document.getElementById('app') 
) 

:

  • /
  • /foo
  • मैं निम्नलिखित कोड है कहो/foo/add

  • /foo/25

लेकिन मार्गों की तरह:

  • /foo/बार/12
  • /बार

अनिवार्य रूप से मैं हर उम्मीद URL स्वरूप एक मार्ग है कि यह से मेल खाएगी है कि जाँच करना चाहते हैं और कि अप्रत्याशित यूआरएल किसी भी मार्ग से मेल नहीं खाते हैं।

मुझे मार्गों द्वारा प्रदान किए जाने वाले तत्वों में कोई दिलचस्पी नहीं है, इसलिए यह जांचने के लिए मेरे परीक्षणों का आधार नहीं बनाना चाहते कि कोई विशिष्ट चीज़ प्रदान की जाती है, केवल एक मिलान करने वाला मार्ग पाया गया था और अधिमानतः जांच का कोई तरीका कि वास्तव में यह अपेक्षित मार्ग था (मुझे लगता है कि घटक का नाम क्या है या कुछ है?)

किसी भी मदद की सराहना की जाती है।

धन्यवाद

उत्तर

1

हम matchRoutes के लिए हमारे परीक्षण में वास्तव में यह परीक्षण: https://github.com/ReactTraining/react-router/blob/v3/modules/__tests__/matchRoutes-test.js

आप इस पैटर्न का पालन कर सकते हैं। यदि आप संदर्भ के अनुसार अपने मार्गों की पहचान नहीं कर सकते हैं, तो आप वास्तव में उन घटकों पर जोर दे सकते हैं जो प्रस्तुत किए गए थे।

रूप matchRoutes निर्यात नहीं किया है, तो आप renderProps.routes या renderProps.components जाँच match सहायक (अन्यथा सर्वर साइड प्रतिपादन के लिए के लिए इस्तेमाल किया) के बजाय का उपयोग करना चाहेंगे, और।

+0

धन्यवाद। मैंने आपके द्वारा लिंक किए गए परीक्षणों पर एक नज़र डाली है, और वे जाने का रास्ता प्रतीत होते हैं। पहली समस्या जो मैंने पार की है वह यह है कि 'indexReses()' फ़ंक्शन को 'index.js' फ़ाइल में बिल्कुल निर्यात नहीं किया जा रहा है, इसलिए मैं थोड़ा सा अटक गया हूं कि मैं इसे कैसे एक्सेस करूं? –

+0

मैंने उत्तर अपडेट किया - 'मिलान() 'का उपयोग करें। – taion

+0

क्या आप इस उत्तर को एक कामकाजी लिंक के साथ अपडेट कर सकते हैं? –

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