forms - কিভাবে আমি পরীক্ষা করতে পারি যে একটি ফর্ম ক্ষেত্র সঠিকভাবে ক্যাপবারা ব্যবহার করে prefilled হয়?




rspec capybara (3)

আমার কোনও উপযুক্ত লেবেল সহ একটি ক্ষেত্র আছে যা আমি কোন সমস্যা ছাড়াই ক্যাপিবারা পূরণ করতে পারি:

fill_in 'Your name', with: 'John'

আমি এটি ভর্তি আগে এটি আছে মান চেক করতে চান এবং এটি খুঁজে বের করতে পারবেন না।

যদি আমি fill_in নিম্নলিখিত লাইনে যোগ করি:

find_field('Your name').should have_content('John')

যে পরীক্ষা ব্যর্থ হয়, যদিও ভর্তি আগে কাজ হিসাবে আমি পৃষ্ঠা সংরক্ষণ করে যাচাই করেছি।

আমি কি অনুপস্থিত?


আপনি বিশেষভাবে একটি স্থানধারক জন্য পরীক্ষা করতে চান, ব্যবহার করুন:

page.should have_field("some_field_name", placeholder: "Some Placeholder")

বা:

expect(page).to have_field("some_field_name", placeholder: "Some Placeholder")

আপনি যদি ব্যবহারকারী-প্রবেশ মান পরীক্ষা করতে চান:

page.should have_field("some_field_name", with: "Some Entered Value")

আমি কিছুটা ভিন্নভাবে কীভাবে ভাবছিলাম তা হল: আমি পরীক্ষা করতে চেয়েছিলাম যে ক্ষেত্রটি কতটা মূল্যবান ছিল ( ক্যাপবারার এর ম্যাটচারটি পুনরায় পরীক্ষা করার সময় এটি মিলিত হওয়ার ক্ষমতা ব্যবহার করার সময়)। এটি সক্রিয় করার জন্য এটি একটি "ফিল্টার ব্লক" ব্যবহার করা সম্ভব হয়েছে:

expect(page).to have_field("field_name") { |field|
  field.value.present?
}

একটি নির্দিষ্ট মান (যেমন 'জন') সহ একটি input উপাদান আছে কিনা তা পরীক্ষা করার জন্য আপনি একটি xpath অনুসন্ধান ব্যবহার করতে পারেন:

expect(page).to have_xpath("//input[@value='John']")

আরও তথ্যের জন্য http://www.w3schools.com/xpath/xpath_syntax.asp দেখুন।

সম্ভবত একটি সুন্দর উপায় জন্য:

expect(find_field('Your name').value).to eq 'John'

সম্পাদনা করুন: আজকাল আমি সম্ভবত_শিল্পী ব্যবহার করব

expect(page).to have_selector("input[value='John']")

আপনি যদি পৃষ্ঠা অবজেক্ট প্যাটার্ন ব্যবহার করছেন (আপনি হতে হবে!)

class MyPage < SitePrism::Page
  element :my_field, "input#my_id"

  def has_secret_value?(value)
    my_field.value == value
  end
end

my_page = MyPage.new

expect(my_page).to have_secret_value "foo"