web-dev-qa-db-ja.com

RspecとTestUnit

Rails 3.0.8アプリケーション用のテストスイートを作成する計画フェーズを開始しています。使用するテストフレームワーク/宝石を決定しようとしています。通常は、 Rails規約にできる限り準拠します。ただし、これはTestUnitを使用することを意味します。TestUnitの代替として作成されたものから選択する多くの競合するテストフレームワークがあります。TestUnitは長年にわたって改善されていますか、またはそれは非常に良い候補ではありませんか?

また、rspecについて多くの良いことを聞いています。 rspecとTestUnitは機能的に近いですか、それともrspecはTestUnitを水から吹き飛ばしますか?

どのフレームワークを選択するにしても、優れたサポートベース(多くのユーザーとドキュメント)、使いやすさ、シンプルさ、そして永続的な未来が望まれます。

42
dhulihan

Test :: UnitとRspecはどちらも非常に優れたソリューションです。私としては、RailsプロジェクトでRSpecを使用することを好みます。オートテスト、構文の強調表示、rake specなどのショートカットコマンド、およびテストイーザーを使用するその他の機能があるためです。 。しかし、私の単純なRubyスクリプトでは、Test :: Unitを使用しています。複雑なテスト(統合など)が必要ない場合は、非常に軽量で簡単です。)

37
bor1s

答えは好みの問題です。1つのプロジェクトで両方を使用し、自分の好みを見つけてください。 (私はTest :: Unitを実行します。RSpecにはたくさんの砂糖が必要です)。

2014年更新:As Ruby 2.xにはMiniTestが組み込まれているため、最終的にシンプルなBDD拡張であるMiniTest :: Specを確認することをお勧めします。 "と" it "ブロックは、テストコンテキストを適切に構造化します。assertより多く必要な場合は、" must_be .. "マッチャーも提供します。

14
gertas

私はこれらの宝石を好み、テストに使用します

  • Rスペック
  • Faker(データベースのランダムで適切なデータを作成するため)
  • 製作(インスタンスを簡単に作成するため)

Rspecから始めるには、このプレゼンテーションをご覧ください。必要なすべての例が含まれています。

http://kerryb.github.com/iprug-rspec-presentation

また、rspecに関する以下の記事もお読みください。

http://relishapp.com/rspec/rspec-Rails

8
makaroni4

これはRuby記事内 であり、特にリンクをたどってコメントを読んだ場合、Test :: UnitとRSpecの相対的なメリットについて非常に徹底的に説明されています。主な差別化要因は次のようです:

  • 非技術的なクライアントを持っている人は、RSpecとCucumberをより好意的に見る可能性が高くなります。
  • othersは、Test :: Unitのようなより直接的なシステムを好む傾向があります。

RSpecとCucumberの比較については、 Michael HartlのRailsチュートリアル のこの部分)も参照してください。

6
sampablokuper

rspeccucumberおよびwebrat gemsと組み合わせて使用​​すると、大規模なWebサイトの場合に優れた組み合わせになります。最初は面倒ですが、後でそれは大きな利益になります。

以下のレイルキャストのエピソードを見て、それらの宝石に関する詳細情報を入手できます。
155キュウリから始まる
156ウェブラット
157 RSpecマッチャーとマクロ
159キュウリの詳細

capybaraのような比較的新しくて有望な他の宝石もありますが、正直に言って試してみませんでした。

4
wael34218

テストを開始する場合は、Railsアプリケーションを使用することをお勧めします。TestUnitを使用してテストを開始することをお勧めします。最高のテストに関する非常に素晴らしいコースを見つけることができますRails app http://www.codeschool.com/courses/Rails-testing-for-zombies のベストプラクティステストの経験が豊富であれば、RSpecを試すことができます。

2
luacassus