【Rails】Capybaraのfill_inメソッドを実行すると「既存レコードの内容+指定した内容」がセットされる事象の原因と対処【RSpec】

はじめに RSpec + Capybaraを使用して、Railsアプリの統合テストを実装しています。とあるモデルの編集画面において、入力フォームの内容を書き換えた上で送信し、レコードが更新されることを確認します。 入力フォームの内容を書き換えるにはCapybaraのfill_inメソッドを使います。 rb fi ...

ひとつのexpectで複数のchangeを確認する方法

ユーザーに関するフィーチャーテストで、ユーザーを削除したらそのユーザーに関連するモデルも削除されることをテストしたいと思いました。 テスト方法 spec/features/users_spec.rb require 'rails_helper' RSpec.feature "Users", type: ...

Active Record - 関連付けモデルのテスト方法

Modelの設定 UserモデルとFundモデルがあり、Userモデルは複数のFundモデルを持つ関連付けの設定は以下のようになります。 オプションとして、Userモデルが削除されたときに関連するFundモデルも削除することとします。 app/models/user.rb class User < Appl ...

RSpecの勉強をはじめました

今日からRSpecの勉強をはじめました。教材はEveryday Rails - RSpecによるRailsテスト入門です。 RSpecについての教材ですが、ところどころテスト自動化における基本理念のような記述もあり、テスト自動化にあまり慣れていない人にも易しい内容になっています。 私は仕事で少しだけJavaのJ ...