मैं Enzyme का उपयोग कर रहा हूं, और हम वास्तव में मेरे प्रश्न के आधार के रूप में दस्तावेज़ों में दिए गए example घटक का उपयोग कर सकते हैं।किसी एचओसी द्वारा लिपटे घोंसला वाले प्रतिक्रिया घटक पर राज्य कैसे पहुंचता है?
के इस <Foo />
घटक ReactRouter से एक <Link>
घटक का उपयोग करता है और इस तरह हम परीक्षण के लिए एक <MemoryRouter>
में लपेट की जरूरत है मान लेते हैं।
यहां समस्या है।
it('puts the lotion in the basket',() => {
const wrapper = mount(
<MemoryRouter>
<Foo />
</MemoryRouter>
)
wrapper.state('name') // this returns null! We are accessing the MemoryRouter's state, which isn't what we want!
wrapper.find(Foo).state('name') // this breaks! state() can only be called on the root!
})
तो, वास्तव में यकीन है कि जब <MemoryRouter>
का उपयोग कर कैसे स्थानीय घटक राज्य तक पहुँचने के लिए नहीं।
शायद मैं एक अज्ञानी परीक्षण कर रहा हूं? परीक्षण में घटक स्थिति खराब अभ्यास प्राप्त करने/सेट करने की कोशिश कर रहा है? मैं कल्पना नहीं कर सकता, क्योंकि एंजाइम में घटक स्थिति प्राप्त करने/स्थापित करने के तरीके हैं।
बस यह सुनिश्चित न करें कि किसी को <MemoryRouter>
में लिपटे घटक के आंतरिक भाग तक कैसे पहुंचाया जाए।
किसी भी मदद की सराहना की जाएगी!
संबंधित: https://stackoverflow.com/questions/42245215/how-to-test-child घटक-विधि-साथ-एंजाइम – indiesquidge