【rails6】結合テストコードエラー expected ◯◯◯◯, but was not given a block の解決
みなさんこんばんは!
今日も結合テストコードのエラー解決について記載していきます
本日対面したエラー
ターミナル
Failure/Error: expect(find_link('削除する', href: article_path(@article1)).click).to change{Article.count}.by(-1)
expected ◯◯☆☆◯◯, but was not given a block
・・・「◯◯☆☆◯◯がブロックで渡されてないよ!」という日本語訳となります
では、原因のテストコード記述を確認してみましょう!
article_spec.rb
# 投稿を削除するとレコードの数が1減ることを確認する
expect(find_link('削除する', href: article_path(@article1)).click).to change{Article.count}.by(-1)
きっと皆様であればどこが間違っているのか、すぐにわかりますよね…
間違っているのは、 expect( ) です、ここは expect{ } で結んであげないとダメなのです
changeマッチャでモデルのカウントをする場合のみ、expect()ではなくexpect{}を使いましょう
と教わっていました…この箇所を忘れてしまったということですね…反省です…
では、直していきましょう
article_spec.rb
# 投稿を削除するとレコードの数が1減ることを確認する
expect{find_link('削除する', href: article_path(@article1)).click}.to change{Article.count}.by(-1)
ターミナルで実行します
Finished in 12.24 seconds (files took 1.3 seconds to load)
3 examples, 0 failures
うん、当然ですが無事にテスト終了しました!
続きを書いていくことにします
Author And Source
この問題について(【rails6】結合テストコードエラー expected ◯◯◯◯, but was not given a block の解決), 我々は、より多くの情報をここで見つけました https://qiita.com/takapon21/items/687ce012e24e8f882dd7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .