Rails 3.0.8アプリケーション用のテストスイートを作成する計画フェーズを開始しています。使用するテストフレームワーク/宝石を決定しようとしています。通常は、 Rails規約にできる限り準拠します。ただし、これはTestUnitを使用することを意味します。TestUnitの代替として作成されたものから選択する多くの競合するテストフレームワークがあります。TestUnitは長年にわたって改善されていますか、またはそれは非常に良い候補ではありませんか?
また、rspecについて多くの良いことを聞いています。 rspecとTestUnitは機能的に近いですか、それともrspecはTestUnitを水から吹き飛ばしますか?
どのフレームワークを選択するにしても、優れたサポートベース(多くのユーザーとドキュメント)、使いやすさ、シンプルさ、そして永続的な未来が望まれます。
Test :: UnitとRspecはどちらも非常に優れたソリューションです。私としては、RailsプロジェクトでRSpecを使用することを好みます。オートテスト、構文の強調表示、rake spec
などのショートカットコマンド、およびテストイーザーを使用するその他の機能があるためです。 。しかし、私の単純なRubyスクリプトでは、Test :: Unitを使用しています。複雑なテスト(統合など)が必要ない場合は、非常に軽量で簡単です。)
答えは好みの問題です。1つのプロジェクトで両方を使用し、自分の好みを見つけてください。 (私はTest :: Unitを実行します。RSpecにはたくさんの砂糖が必要です)。
2014年更新:As Ruby 2.xにはMiniTestが組み込まれているため、最終的にシンプルなBDD拡張であるMiniTest :: Specを確認することをお勧めします。 "と" it "ブロックは、テストコンテキストを適切に構造化します。assert
より多く必要な場合は、" must_be .. "マッチャーも提供します。
私はこれらの宝石を好み、テストに使用します
Rspecから始めるには、このプレゼンテーションをご覧ください。必要なすべての例が含まれています。
http://kerryb.github.com/iprug-rspec-presentation
また、rspecに関する以下の記事もお読みください。
これはRuby記事内 であり、特にリンクをたどってコメントを読んだ場合、Test :: UnitとRSpecの相対的なメリットについて非常に徹底的に説明されています。主な差別化要因は次のようです:
RSpecとCucumberの比較については、 Michael HartlのRailsチュートリアル のこの部分)も参照してください。
rspec
をcucumber
およびwebrat
gemsと組み合わせて使用すると、大規模なWebサイトの場合に優れた組み合わせになります。最初は面倒ですが、後でそれは大きな利益になります。
以下のレイルキャストのエピソードを見て、それらの宝石に関する詳細情報を入手できます。
155キュウリから始まる
156ウェブラット
157 RSpecマッチャーとマクロ
159キュウリの詳細
capybara
のような比較的新しくて有望な他の宝石もありますが、正直に言って試してみませんでした。
テストを開始する場合は、Railsアプリケーションを使用することをお勧めします。TestUnitを使用してテストを開始することをお勧めします。最高のテストに関する非常に素晴らしいコースを見つけることができますRails app http://www.codeschool.com/courses/Rails-testing-for-zombies のベストプラクティステストの経験が豊富であれば、RSpecを試すことができます。