railsでテストケースを作成しています。
ログインユーザとデータの組み合わせでWEBページのビューで項目表示を制御しているのですが、
WEBページに文字列が存在しない事という判定条件をどのように作成したら良いか分かりません。
何らかのオブジェクト化している変数等であれば、assert_notが使えるのかもしれませんが、
チェックしたい項目は<td>タグに囲まれたただの文字列ですので、assert_notも使えなさそうです。
WEBページに文字列が存在しない事のmatcherは何を使用すべきでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
自己解決
assert_select が、要素を確認するというメソッドのようなので、0件だったらいいんじゃない?
と思って、以下のようにテストしてみたらOKでした。
assert_select object , :count => 0 , :text => "メッセージ"
投稿2020/07/09 23:43
総合スコア61
0
追記
頂いた通りexpectを指定してみたのですが、visitというメソッドが無かったり、page変数が無かったりしました。
visit
が undefined method となる場合は
spec_helper.rb
の RSpec.configure
に
config.include Capybara::DSL
を追加すると動作します:
ruby
1# This file is copied to spec/ when you run 'rails generate rspec:install' 2ENV["RAILS_ENV"] ||= 'test' 3require File.expand_path("../../config/environment", __FILE__) 4require 'rspec/rails' 5require 'rspec/autorun' 6 7# Requires supporting ruby files with custom matchers and macros, etc, 8# in spec/support/ and its subdirectories. 9Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f} 10 11RSpec.configure do |config| 12 # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures 13 # config.fixture_path = "#{::Rails.root}/spec/fixtures" 14 config.use_transactional_fixtures = true 15 config.infer_base_class_for_anonymous_controllers = false 16 config.order = "random" 17 # Include path helpers 18 config.include Rails.application.routes.url_helpers 19 20 # ↓ 追加 21 config.include Capybara::DSL 22 23end
参考:
Answer: undefined method `visit' when using RSpec and Capybara in rails
Capybara + Rspecでvisitがundefined methodと言われたときの対策 - Qiita
元の回答
Capybara
を使い、次のように記述できるようです:
ruby
1expect(page).not_to have_content(arg1)
参考: Answer: Cucumber/Capybara: check that a page does NOT have content?
念のため、Capybara
については、
次の Rails チュートリアルの 3.2.1 テスト駆動開発にて、触りの部分を解説されています
第3章 ほぼ静的なページの作成 - Railsチュートリアル
投稿2020/07/08 21:16
編集2020/07/09 10:38総合スコア3272
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/09 22:29
2020/07/09 23:44
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。