LoginSignup
9
5

More than 3 years have passed since last update.

Rspec System Specでconfirmダイアログのテスト記述方法

Posted at

はじめに

system spec でテストをするとき、confirmのダイアログのテスト方法が分からなかった記述方法をまとめます。

スクリーンショット 2021-02-27 11.08.49.png

到達点

以下の1点を達成する
・confirmのダイアログのテストの記述方法を理解する

流れ

① confirmのダイアログのテスト

① confirmのダイアログのテスト

投稿記事を削除するとき、ダイアログが表示され、okをクリックすると削除されるかテストを記述します。
結論から言うと、
expect(page.accept_confirm).to eq "本当に削除しますか?"
という記述をするとよいです。

spec/systems/posts_spec.rb
it "削除ボタンを押すと、削除されること" do
  find(".alarm").click    *投稿削除ボタンをクリック
  expect do
    expect(page.accept_confirm).to eq "本当に削除しますか?"
    expect(page).to have_content "test_titleを削除しました"  *flashメッセージ
  end.to change(Post, :count).by(-1)
  is_expected.not_to have_content post.title   *記事一覧に削除した投稿がないことを確認
end

参考記事

使えるRSpec入門・その4「どんなブラウザ操作も自由自在!逆引きCapybara大辞典」

9
5
1

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
9
5