LoginSignup
0
1

More than 3 years have passed since last update.

入力フォームにあらかじめ値が入っているかチェックするテスト

Last updated at Posted at 2019-10-27

はじめに

予約画面などのフォームを作る際、
何かしらの値(ログインユーザー名など)があらかじめ入力されていてほしい、という場面が出てきました。

フォームにあらかじめ値が入っていることをRSpec+Capybaraを使ってテストしましたので、そのやり方をメモします。

実行環境

この記事は以下の環境で動作確認しています。
ruby (2.3.7)
rails (5.2.3)
capybara(3.15.1)
rspec-rails(3.8.2)

テスト方法

ビュー側で以下のフォームが定義されているとします。


<%= form_for(@booking, url: new_booking_path) do |f| %>
  <%= f.label "名前" %>
  <%= f.text_field :name, value: (current_user.name if user_signed_in?), id: "name" %>
・・・
<% end %>

この場合、ログインユーザー名があらかじめ名前フォームに入っているはずです。
以下のコードを用いて、この状態をテストできます。

expect(find_field('name').value).to eq "John"

"name"のフィールド要素を持つフォームに"John"と入力されているかテストしています。
"John"の部分はテストしたい内容に合わせて適宜変えてください。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1