9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?