【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
그래, 당연하지만 무사히 테스트 종료했습니다!
계속을 작성하기로 결정합니다
Reference
이 문제에 관하여(【rails6】결합 테스트 코드 에러 expected ◯◯◯◯, but was not given a block의 해결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takapon21/items/687ce012e24e8f882dd7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)