reactjs - रिएक्ट एंजाइम दूसरे(या nth) नोड को खोजते हैं




jasmine enzyme (2)

मैं जैस्मीन एंजाइम उथले प्रतिपादन के साथ एक प्रतिक्रिया घटक का परीक्षण कर रहा हूं।

इस सवाल के प्रयोजनों के लिए यहाँ सरलीकृत ...

function MyOuterComponent() {
  return (
    <div>
      ...
      <MyInnerComponent title="Hello" />
      ...
      <MyInnerComponent title="Good-bye" />
      ...
    </div>
  )
}

MyOuterComponent में MyOuterComponent के 2 उदाहरण हैं और मैं प्रत्येक पर MyInnerComponent का परीक्षण करना चाहूंगा।

पहले एक मुझे पता है कि कैसे परीक्षण करना है। मैं first साथ find उपयोग करें ...

expect(component.find('MyInnerComponent').first()).toHaveProp('title', 'Hello');

हालाँकि, मैं MyInnerComponent के दूसरे उदाहरण का परीक्षण करने के लिए संघर्ष कर रहा हूँ।

मुझे उम्मीद थी कि कुछ इस तरह से काम करेगा ...

expect(component.find('MyInnerComponent').second()).toHaveProp('title', 'Good-bye');

या यह भी ...

expect(component.find('MyInnerComponent')[1]).toHaveProp('title', 'Good-bye');

लेकिन निश्चित रूप से उपरोक्त कार्यों में से कोई भी नहीं।

मुझे लगता है कि मैं स्पष्ट याद कर रहा हूँ।

लेकिन जब मैं docs माध्यम से देखता हूं तो मुझे एक अनुरूप उदाहरण नहीं दिखता है।

किसी को?


आप जो चाहते हैं, वह .at(index) विधि है: .at(index)

तो, आपके उदाहरण के लिए:

expect(component.find('MyInnerComponent').at(1)).toHaveProp('title', 'Good-bye');


यदि आप प्रत्येक चीज़ पर कुछ चीजों का परीक्षण करना चाहते हैं, तो भी मिलान सेट के माध्यम से पुनरावृत्ति करने पर विचार करें:

component.find('MyInnerComponent').forEach( (node) => {
    expect(node.prop('title')).toEqual('Good-bye')
})




enzyme