RSpec

Capybaraでファイルの選択、ラジオボタンの選択

ファイルの選択 attach_file('locator', 'path/to/file')を記載する。 context 'アイキャッチ幅を100未満にして更新を押す' do it '「100以上の値にしてください」というバリデーションエラーが表示される' do attach_file 'article[eye_catch]', "#{Rails.r…

FactoryBotのtransient

FactoryBot.define do factory :article do sequence(:slug) { |n| "TestSlug#{n}" } sequence(:title) { |n| "Title#{n}" } category trait :with_author do transient do sequence(:author_name) { |n| "test_author_name_#{n}" } sequence(:tag_slug) { |…

Unable to find field "user[name]" that is not disabled

ログイン処理の際のfill_inがうまく動かず、上記のエラーが発生 該当コード module LoginMacros def login_as(user) visit admin_login_identifier_path fill_in 'user[name]', with: user.name click_button "次へ" fill_in 'user[password]', with: "passw…

switch_to_window(windows.last)・strftimeメソッド・traitをletで呼び出す

switch_to_window(windows.last) 以下のテストコードを実行したところエラーが発生 describe 'Task一覧' do context '正常系' do it 'Project詳細からTask一覧ページにアクセスした場合、Taskが表示されること' do project = FactoryBot.create(:project) ta…

webdriversのエラー・テスト実行時のブラウザについて・Unable to find field "Password confirmation" that is not disabledの解決・特定のテストケースのみを実行

webdriversのエラー gem webdriversをインストールし、RSpecのシステムテストを実行したところ以下のエラーが発生。 NameError: uninitialized constant ActionDispatch::SystemTesting::Browser::Selenium gem chromedriver-helperをインストールしたところ…

FactoryBotのシンタックスを省略

FactoryBotのシンタックスを省略 spec/rails_helper.rbに以下の一行を追加 config.include FactoryBot::Syntax::Methods before FactoryBot.build(:user) FactoryBot.create(:user) after build(:user) create(:user)

RSpecでモックとスタブを使う

モック テストのために使用される本物のオブジェクトのフリをするオブジェクト。モックはデータベースにアクセスしないため、テストにかかる時間を縮小することができる。double()を使って生成。 スタブ: テスト用のダミーメソッド。データベースやネットワ…

Factory Botの導入・フィーチャスペックの基礎

Factory Botの導入 gemをインストールする gem factory_bot_rails bundle install ※ジェネレータで自動的にファクトリが作成されるようにconfig/application.rbからfixtures: falseを削除(あれば) Userモデルのファクトリの作成 $ rails g factory_bot:mod…

ffiインストールエラー・RSpecのセットアップ/モデルのテスト

ffiのインストールエラー EverydayRailsでRSpecについて学習するため、学習用のソースコードをクローンして、bundle installを実行したところエラーが発生。 ERROR: Error installing ffi: ERROR: Failed to build gem native extension. bundle updateでffi…