এনজাইমটি দ্বিতীয় (বা নবম) নোডের প্রতিক্রিয়া জানায়


128

আমি জেসমিন এনজাইম অগভীর রেন্ডারিংয়ের সাথে একটি প্রতিক্রিয়া উপাদান পরীক্ষা করছি।

এই প্রশ্নের প্রয়োজনে এখানে সরলীকৃত ...

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

MyOuterComponentএর দুটি উদাহরণ রয়েছে MyInnerComponentএবং আমি প্রত্যেকটির প্রপস পরীক্ষা করতে চাই।

প্রথমটি আমি পরীক্ষা করতে জানি to আমি ব্যবহার findসঙ্গে first...

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');

তবে অবশ্যই উপরের কোনটিই কাজ করে না।

আমার মনে হচ্ছে আমি স্পষ্ট অনুপস্থিত।

তবে আমি যখন ডক্সটি সন্ধান করি তখন কোনও সাদৃশ্য উদাহরণ দেখতে পাই না।

যে কেউ?

উত্তর:


225

আপনি যা চান তা হ'ল .at(index)পদ্ধতি: .at (সূচক)

সুতরাং, আপনার উদাহরণের জন্য:

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


1
আমার জন্য এটি at()ব্যবহার করে findAll()সম্ভবত প্রকল্পের সংস্করণ সম্পর্কিত version
জোনাটাস সিডি

11

আপনি যদি প্রতিটিতে কিছু জিনিস পরীক্ষা করে দেখতে চান তবে ম্যাচের সেটটি দিয়ে পুনরাবৃত্তি বিবেচনা করুন:

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.