Rails tips: RSpecテストを遅くする悪い書き方3種(翻訳)

概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: 3 things that slow down and make your RSpec tests worse 原文公開日: 2018/03/21 著者: Paweł Dąbrowsk Rails tips: RSpecテストを遅くする悪い書き方3種(翻訳) テストが遅くなる原因はそれはもうさまざまで、コードに関係するものもあればそうでないものもあります。今回は、specを高速化して改善するちょっとした変更のコツをご紹介します。 1. trueかfalseを常に期待する場合はbe_truthyやbe_falseyを避ける まずは以下のコードをちょっとご覧ください。 expect(true).to be_truthy expect(1).to be_truthy expect(‘string’).to be_truthy expect(nil).to be_falsey expect(false).to be_falsey どのexpectationもパスしますので、falseやtrueが返っているとお考えになるかもしれませんが、何か不具合があってこれ以外のものが返されると、テストでキャッチできなくなってしまう可能性があります。 解決方法 値そのものを指定します。 expect(true).to eq(true) expect(1).to eq(true) expect(‘string’).to eq(true) expect(false)to eq(false) expect(nil).to eq(false) 2. FactoryBot.buildは避ける 訳注: 原文のFactoryGirlはリンクを除いてFactoryBotに置き換えました。 FactoryBot.buildを呼び出してもデータベースにレコードは作成されないとお思いかもしれませんが、まあUse Factory … Continue reading Rails tips: RSpecテストを遅くする悪い書き方3種(翻訳)