Ruby on Rails 5.2 - ActionDispatch::SystemTestCase

वर्ग ActionDispatch :: SystemTestCase




ruby

वर्ग ActionDispatch :: SystemTestCase

जनक:
जोड़ने का परीक्षण
शामिल मॉड्यूल:
ActionDispatch::SystemTesting::TestHelpers::ScreenshotHelper

सिस्टम परीक्षण

सिस्टम परीक्षण आपको ब्राउज़र में एप्लिकेशन का परीक्षण करने देता है। क्योंकि सिस्टम परीक्षण एक वास्तविक ब्राउज़र अनुभव का उपयोग करते हैं, आप अपने टेस्ट सूट से आसानी से अपने सभी जावास्क्रिप्ट का परीक्षण कर सकते हैं।

अपने एप्लिकेशन में एक सिस्टम टेस्ट बनाने के लिए, ApplicationSystemTestCase से अपने टेस्ट क्लास का विस्तार करें। सिस्टम परीक्षण एक आधार के रूप में Capybara का उपयोग करते हैं और आपको अपने application_system_test_case.rb system_test_case.rb फ़ाइल के माध्यम से सेटिंग्स को कॉन्फ़िगर करने की अनुमति देते हैं जो एक नए एप्लिकेशन या मचान के साथ उत्पन्न होती है।

यहाँ एक उदाहरण प्रणाली परीक्षण है:

require 'application_system_test_case'

class Users::CreateTest < ApplicationSystemTestCase
  test "adding a new user" do
    visit users_path
    click_on 'New User'

    fill_in 'Name', with: 'Arya'
    click_on 'Create User'

    assert_text 'Arya'
  end
end

एप्लिकेशन या मचान बनाते समय, सिस्टम परीक्षण के लिए बेस क्लास युक्त एक application_system_test_case.rb फ़ाइल भी जेनरेट की जाएगी। यह वह जगह है जहां आप ड्राइवर को बदल सकते हैं, अपने सिस्टम परीक्षणों के लिए कैपिबारा सेटिंग्स और अन्य कॉन्फ़िगरेशन जोड़ सकते हैं।

require "test_helper"

class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
  driven_by :selenium, using: :chrome, screen_size: [1400, 1400]
end

डिफ़ॉल्ट रूप से, ActionDispatch::SystemTestCase क्रोम ब्राउजर, क्रोम ब्राउजर और 1400x1400 के ब्राउजर साइज से संचालित होता है।

ड्राइवर कॉन्फ़िगरेशन विकल्पों को बदलना आसान है। मान लें कि आप क्रोम के बजाय फ़ायरफ़ॉक्स ब्राउज़र का उपयोग करना चाहते हैं। अपने application_system_test_case.rb में_सिस्टम_test_case.rb फ़ाइल निम्न जोड़ें:

require "test_helper"

class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
  driven_by :selenium, using: :firefox
end

चालक नाम के लिए एक आवश्यक तर्क है। कीवर्ड तर्क हैं :using ब्राउज़र के लिए :using करना और :screen_size ब्राउज़र स्क्रीन का आकार बदलने के लिए :screen_size करना। ये दो विकल्प हेडलेस ड्राइवरों के लिए लागू नहीं हैं और यदि पारित हो गए तो चुपचाप नजरअंदाज कर दिए जाएंगे।

हेडलेस क्रोम और हेडलेस फ़ायरफ़ॉक्स जैसे हेडलेस ब्राउज़र भी समर्थित हैं। आप इन ब्राउज़र का उपयोग कर सकते हैं :using तर्क का :using :headless_chrome या :headless_firefox

Poltergeist की तरह एक हेडलेस ड्राइवर का उपयोग करने के लिए, सेलेनियम के बजाय Poltergeist का उपयोग करने के लिए अपने Gemfile को अपडेट करें और फिर application_system_test_case.rb फ़ाइल में ड्राइवर का नाम घोषित करें। इस स्थिति में, आप :using विकल्प :using करना छोड़ देंगे क्योंकि ड्राइवर हेडलेस है, लेकिन आप अभी भी उपयोग कर सकते हैं :screen_size ब्राउज़र स्क्रीन का आकार बदलने के लिए, आप भी उपयोग कर सकते हैं :options ड्राइवर द्वारा समर्थित :options को पास करने के लिए। समर्थित विकल्पों के बारे में जानने के लिए कृपया अपने ड्राइवर के दस्तावेज़ देखें।

require "test_helper"
require "capybara/poltergeist"

class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
  driven_by :poltergeist, screen_size: [1400, 1400], options:
    { js_errors: true }
end

क्योंकि ActionDispatch::SystemTestCase Capybara और Rails के बीच एक शिम है, Capybara द्वारा समर्थित किसी भी ड्राइवर को सिस्टम परीक्षणों द्वारा समर्थित किया जाता है जब तक कि आप आवश्यक रत्नों और फ़ाइलों को शामिल करते हैं।

पब्लिक क्लास के तरीके

संचालित_बी (ड्राइवर, उपयोग: क्रोम, स्क्रीन_साइज़: [1400, 1400], विकल्प: {}) दिखाएँ स्रोत
# File actionpack/lib/action_dispatch/system_test_case.rb, line 137
def self.driven_by(driver, using: :chrome, screen_size: [1400, 1400], options: {})
  self.driver = SystemTesting::Driver.new(driver, using: using, screen_size: screen_size, options: options)
end

सिस्टम टेस्ट कॉन्फ़िगरेशन विकल्प

1400x1400 के स्क्रीन आकार के साथ, क्रोम का उपयोग करते हुए डिफ़ॉल्ट सेटिंग्स सेलेनियम हैं।

उदाहरण:

driven_by :poltergeist

driven_by :selenium, screen_size: [800, 800]

driven_by :selenium, using: :chrome

driven_by :selenium, using: :headless_chrome

driven_by :selenium, using: :firefox

driven_by :selenium, using: :headless_firefox