堅実な仕様と見なされるものは何ですか?
これは、テストについて非常に抽象的であることがわかりました。モデル、コントローラー、その他テストできるものについて、これに対する答えに興味があります。仕様のための仕様があればクールだろう。
モデル仕様は (優先度と関連性の順で):
- すべてのメソッドをテストしますか?
- エラー配列をテストしますか?
- CRUD をテストしますか (およびその方法)?
- ほかに何か?
コントローラー/ビューの仕様は (優先度/関連性の順で):
- 空欄を埋める...
- ?
仕様に含めるべきものと含めるべきでないもののリストを拡張できれば素晴らしいことです。
また、トリックや提案のリストもまとめたいと思います。例えば:
キーワード「should」はやや冗長です。
例:
これ:
it "should be invalid without a firstname"
次のようにするとよいでしょう:
it "is invalid without a firstname"
さらに別のトリックとして、読みやすくするために lambda の代わりに expect を使用します。
lambda { ... }.should be_valid
次のように読みやすくなります。
expect { ... }.should be_valid
始めるにあたって役立つ記事のリストをまとめており、それらが登場したらこの投稿で共有します。現時点で特に役立つと思われるものをいくつか紹介します。(お気軽に投稿してください。役立つと思われる場合は追加します)。
http://everydayrails.com/2012/03/19/testing-series-rspec-models-factory-girl.html http://nelvindriz.tumblr.com/post/835494714/rspec-best-practices
テストが適切に実装されているプロジェクトのリストがあると便利です。rspec は非常に読みやすいので (少なくとも誰もがそう言っています)、優れた仕様を持つプロジェクトへのリンクのリストを取得するのは素晴らしいことです。
「良い仕様の例については、 Mongoidの仕様を参照してください。」-@yfeldblum (下記の回答を参照)
オンラインでは、基本的なものをテストする方法に関する非現実的なシナリオを説明している記事がたくさんありますが、それ以上は自分で行う必要があります。このトピックに関する記事を書く場合は、自分のテスト (たとえば github) にリンクし、それらの仕様の 1 つまたはいくつかに完全に注釈を付けます... これは、rspec に関する記事を書く最良の方法のようです。私の意見では。私はそれを自分でやりますが、私はまだそこにいません。
これを閉じることに投票した場合は、それで問題ありません。この投稿がどこに属していると思うかについて、コメントや提案を残してください. ありがとう!