仮想のブラウザを立ち上げてのテストが可能です。以下のような要領でテストをします。 めちゃくちゃ便利そうなんですけど、このSystemTestCaseのドキュメントがなかなか見当たらず苦戦しています。 AIの提案するコードも「そういうの書けたらいいよね!でも動かないね!」ってのが多くて、うまくいかず😅
いつかもうちょっと掘り下げて書いてみたいな、ということでメモを残しておきます。
require "application_system_test_case"
class ItemsTest < ApplicationSystemTestCase
setup do
@item = items(:one)
@admin_user = users(:admin)
# adminユーザーでログイン
visit new_session_path
fill_in "email_address", with: @admin_user.email_address
fill_in "password", with: "password"
click_on "ログイン"
# ログイン成功を確認
assert_text @admin_user.name
end
test "visiting the index" do
visit items_url
# for debugging purposes
# puts "Current URL after visiting items: #{current_url}"
# puts "Page title: #{page.title}"
# puts "Page has h1?: #{page.has_css?('h1')}"
# puts "Page source snippet: #{page.body[0..500]}"
# ログインできているか確認
assert_no_text "ログイン" # ログインボタンが表示されていないことを確認
assert_selector "h1", text: "商品"
end
test "should create item" do
visit items_url
click_on "新規作成"
fill_in "Name", with: @item.name
fill_in "Sizes", with: @item.sizes
fill_in "Memo", with: @item.memo
click_on "保存"
assert_text "商品を作成しました。"
click_on "戻る"
end
test "should update Item" do
visit item_url(@item)
click_on "編集", match: :first
fill_in "Name", with: @item.name
fill_in "Sizes", with: @item.sizes
fill_in "Memo", with: @item.memo
click_on "Update Item"
assert_text "商品を更新しました"
click_on "戻る"
end
test "should destroy Item" do
visit item_url(@item)
click_on "削除"
assert_text "商品を削除しました。"
end
end