8

既存の Rails 3.2 に Minitest を使用することを検討しています。minitest-rails と minitest-spec-rails の違いを理解しようとしています。

4

2 に答える 2

13

minitest-spec-railsminitest-railsの主な違いは、解決する問題の範囲です。

minitest-spec-レール

minitest-spec-rails は、Rails がデフォルトで提供するテスト インフラストラクチャをオーバーライドし、テストで Minitest Spec DSL とマッチャーを使用する機能を追加します。これは、Spec DSL の使用を開始するために、既存のテストに変更を加える必要がないことを意味します。また、Spec DSL がすべてのテストで利用できることも意味します。

ミニテストレール

minitest-rails は Spec DSL を使用する機能を追加しますが、テストの作成方法へのアプローチも変更します。テスト用の新しいジェネレーターを提供し、TDD スタイルのアサーションまたは BDD スタイルの期待から選択できるようにします。テストファイルをより適切な場所に配置します。

また、既存のテストを新しい Minitest テストと共存させることもできます。minitest-spec-rails と同様に、デフォルトのテスト インフラストラクチャをオーバーライドするオプションがありますが、そのままにしておくオプションもあります。

開示:私はminitest-railsの作者です

于 2012-07-27T16:19:21.663 に答える
1

minitest-spec-rails を使用すると、MiniTest::Spec を ActiveSupport::TestCase のスーパークラスとして置き換えることで、実用的なソリューションが得られます。このソリューションはシンプルで、test_helper.rb で新しいテスト ケースを再作成したり、minitest-rails などの gem によって提供されるジェネレーターを使用したりする必要はありません。

Rails 内でテストするための最小限の変更。テスト クラスは、ActiveSupport::TestCase ではなく、MiniTest::Rails::ActiveSupport::TestCase から継承します。MiniTest::Spec DSL を使用できます。標準モデル、コントローラー、リソース、およびその他のジェネレーターを使用して、テスト ファイルを生成できます。

rails generate model User 

また

また、 --spec オプションを指定することで、任意のジェネレーターで MiniTest::Spec DSL を使用してテストを生成するように指定できます。

rails generate model User --spec
于 2012-06-16T20:34:31.167 に答える