rspec
itの結果について、expectは一つのほうがいいですか?
itの中に15個くらいexpectを書いてるテストを見ました。
1it 1expect がいいなどRSpecの思想をご存知の方ご教授お願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
理想的には一つのexample(一つのit)につき、一つのエクスペクテーション(expect)です。
が、実際にやってみるとわかると思いますが、これを厳密に守ろうとすると結構大変です。
なので、僕は理想は理想として理解しつつ、ある程度手抜きすることも許容する、というスタイルでやっています。
コード例はRSpecではなくMinitestですが、こちらの記事に書いた内容が参考になるかなと思います。
また、この記事も比較的近いテーマを扱っています。
サヨナラBetter Specs!? 雑で気楽なRSpecのススメ - Qiita
さらに、RSpec 3.3から導入されたaggregate_failures
を使うと、example内に複数のエクスペクテーションを書いたときも途中で止まらずに最後までエクスペクテーションを実行することができます。
実用的な新機能が盛りだくさん!RSpec 3.3 完全ガイド - Qiita
RSpecに限らず、何かしらの原則を厳密に守ろうとするとやたらと工数がかかったり、むりやりなハックを繰り出すことになったり、何かと本末転倒なことが起きがちです。
なので、以下のようなプロセスで「原則を守るか、破るか」を判断するのがいいと思います。
- なぜその原則があるのか。原則を守るとどういうメリットがあるのか、守らないとどういうデメリットがあるのかを理解する。
- 最初はできるところまで原則を守ろうとしてみる。
- 原則を守ろうとした結果、「工数がかかりすぎる」「必要以上にコードが複雑になってきた」というような弊害が出てきたら、「原則を守るメリット・デメリット」と「原則を破るメリット・デメリット」を天秤にかける。
- 原則を破る方のメリットが勝るようであれば、あえて原則を破る。
「ネットに書いてあったから」とか、「偉い人がそう言っているから」ではなく、このように自分の頭で考えて結論を出す訓練をした方がエンジニアとして成長できるんじゃないかなと僕は思います。
投稿2018/01/14 23:43
編集2018/01/14 23:45総合スコア357
0
RSpec を書いていく上での「良い書き方」であれば、次のリンクが参考になるかもしれません
投稿2018/01/13 09:59
総合スコア2321
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/15 03:13