17

私は昔ながらの方法でRailsを学んでいます。Rails を使用したアジャイル Web 開発 (第 3 版) を出発点として読んでください。私は現在、テストを教える章にいます。RSPec などの他の BDD テスト フレームワークについても認識しています。だから私は、RSpec、Cucumber、Test::Unit を知る/使用する必要性を置き換える必要があるかどうか疑問に思っていましたか? それらは両方ともそれ自体に関連性があり、異なる目的に使用されていますか?

更新: 私はテストを始めたばかりなので、さまざまなフレームワークに慣れるのに役立つリソースについてフィードバックを得たいと思っています。

ありがとう!

4

5 に答える 5

16

世界が変わった!@prusswanをチェックして賛成票を投じる

BDD やその他のテスト ツールをめぐる誇大広告はたくさんありますが、Test::Unit は依然として関連性があると思います。

そうは言っても、やる気があるなら、Test::Unit の学習をスキップして、RSpec や Shoulda のようなものからすぐに始めることもできますが、Agile Web Development Book の例をたどって確認することについては、何か言いたいことがあります。 BDD のアイデアがどこから来たのか。

Railsに付属していて、まだ非常に優れたテストフレームワークであるため、一部のプロジェクトではまだTest::Unitを使用しています。

要するに、時代遅れではないと思いますが、もはや最先端ではありません。BDD は、特に Cucumber と Webrat の使用を開始する場合のテスト パラダイム シフトですが、使い始めると素晴らしいものになります。Shoulda は最も移行しやすいので、Test::Unit から始めて、Shoulda に移行し、RSpec と Cucumber を試してみます。

あなたはテスト中か、少なくともテストに興味があります!それが最良の部分です。最終的には、満足している限り、何を使用しても問題ありません。

幸運を!

于 2009-04-04T15:03:19.630 に答える
6

2012年からの更新を投稿すると思いました:

RoRに関する3 冊の 主要かつ最新の(わずかな変更を加えるだけで Rails 3.2 で使用可能) 入門書のうち、2 冊は Rspec を使用しており (多くても Test::Unit については短い言及しかありません)、そのうちの 1 冊は計画中です。次のエディションのmoar Rspecでも、この「戦い」の勝者は今のところ明らかです

そして、dhh を選択的に引用させてください。

重要なことはもちろん、人々にテストしてもらうことです。そのため、ツールはあまり重要ではありません。

2014年に再訪:

Minitest は、現在のバージョンの Rails のデフォルトとして Test::Unit に取って代わりました。個人的には、いくつかの理由から、前作と比較して詳しく見てみる価値があると感じています -

  1. デフォルトとしてのステータス
  2. カピバラとセレンのサポートが向上しました。これは主にこのような gem によるものです。
  3. 比較的軽量
  4. Test::Unit とのほとんどの下位互換性
于 2012-07-25T11:42:08.757 に答える
4

Rspecは、完全に独立したテストフレームワークです。Shouldaは、Railsの組み込みフレームワークであるTest::Unitの拡張機能です。Shouldaを使用している場合は、Test :: Unitを使用していますが、より多くの機能と、より単純で読みやすい構文を備えています。

私はRspecとShouldaを試しましたが、私にとっては、Shouldaが勝ちました。私はそれがずっと好きです。しかし、それは好みの問題かもしれません。

キュウリはShouldaで使用できることに注意してください。

その他のリソース?ZenTestとRedGreenの宝石をお勧めします。ZenTestには自動テストが用意されており、ファイルを変更するたびにテストを自動的に実行できます。それは大きな助けです。

フィクスチャとファクトリに関しては、両側または親子関係をテストしたり、多対多の関係をテストしたりする場合に、相互に関連するオブジェクトの束を設定する必要がある場合、フィクスチャの方がはるかにうまく機能します。実は、工場でそれができるかどうかさえわかりません。したがって、フィクスチャを却下しないでください。フィクスチャには用途があります。

于 2009-07-02T04:57:28.007 に答える