iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0
Software Development

Rails 開發,每日一套件介紹! 系列 第 24

Day 24: 端對端測試的水豚君 - Capybara

  • 分享至 

  • xImage
  •  

Hello, 我是 Weber,一位工程師,斜槓鼓手與行銷顧問。
每日一套件的第 24 天,請跟著我一起認識 Rails 開發好用的 30 個套件,建立出自己的常用套件庫吧!

Day 24: Capybara

水豚(學名:Hydrochoerus hydrochaeris),是草食動物,主要以草、水生植物、樹皮和果實為食,而且十分挑食。

???

同時,水豚君 也肩負著編寫端對端(E2E)測試的重要任務,從使用者端出發,對系統端進行測試。Capybara 尤其專注 Web 的測試。主要功能是模擬使用者在瀏覽器操作,比如點擊連結、填寫表單、驗證頁面內容等,測試功能等。Capybara 可以與其他測試一起使用,如: RSpec

安裝方式:

老招了,起手式:

$ bundle add capybara

接著就假設我們測試是使用 RSpec 編寫。
有一個網頁上的登入頁面要測試,包含一個用戶名稱、密碼,然後有一顆登入的按鈕。
首先,先以 require 'capybara/rspec'

以下實作一段登入的測試範例:

require 'capybara/rspec'

RSpec.describe "Login function", type: :feature do
  before do
    Capybara.current_driver = :selenium_chrome
  end

  after do
    Capybara.use_default_driver
  end

  it "succuss login" do
    visit "/login"

    fill_in "Username", with: "Weber"
    fill_in "Password", with: "password123"

    click_button "Login"

    expect(page).to have_content "Welcome,Weber!"
  end
end

Capybara 在測試中模擬使用者在網頁上的操作。使用 visit 方法前往網頁,使用 fill_in 方法填寫表單,使用 click_button 方法點擊按鈕,最後使用 expect 方法驗證頁面內容。

還有許多其他方法,用於模擬不同的操作,如點擊連結、選擇下拉選單、驗證 DOM 元素等。
可以自行翻閱一下文件,根據不同的需求來寫。

最後一個小測試,請問下圖中,有幾隻 Capybara
我們明天見!


上一篇
Day 23: 每叮每當,定期任務管理 - Whenever
下一篇
Day 25: 麝香葡萄好好吃 之 RESTful API Framework - Grape
系列文
Rails 開發,每日一套件介紹! 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言