みなさんこんばんは!
今日も結合テストコードのエラー解決について記載していきます
本日対面したエラー
ターミナル
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
うん、当然ですが無事にテスト終了しました!
続きを書いていくことにします