7

GoGaRuCo 2011のこのビデオでは、CoreyHainesがRailsテストスイートをはるかに高速にするためのいくつかのテクニックを示しています。私はそれを次のように要約します:

  • Railsアプリの外で、他のモジュールやクラスにできるだけ多くのコードを配置します
  • Railsをロードするオーバーヘッドなしで、それらを個別にテストします
  • Railsアプリ内からそれらを使用する

しかし、私が理解していなかったことがいくつかありました。

  • rspec彼はandspnまたはorを使用してテストを交互に実行しますspna(たとえば、約3:50)。spn一般的に知られているツールですか?
  • Rails以外のクラスとモジュールのテストでは、テスト対象のモジュールまたはクラスが含まれていますが、のようなものは含まれていませんspec_helper。彼はどのようにしてRspecを利用できますか?
4

1 に答える 1

19

混乱して申し訳ありません。spnおよび、spnaレール以外のコードを rspec のロード パスに追加するためのエイリアスです。-I path_to_codeコマンドラインにa を追加する以外に、特別なことは何もありません。

最近では、次のようなものを.rspecファイルに追加します。

-I app/mercury_app

require 'object_name'次に、スペックの一番上でシンプルにできます。

含まないspec_helperことについては、そうです、私はしません。spec ファイルを で実行すると解釈されるため、明示的rspec <path_to_spec_file>に require する必要はありません。rspec

最近の私のデータベース仕様については、active_record_spec_helperactive_record を必要とし、テスト データベースへの接続を確立し、セットアップするも構築しましたdatabase_cleaner。これにより、モデルをスペック ファイルの先頭に単純に要求することができます。このようにして、アプリ全体をロードすることなく、DB に対して AR コードをテストできます。

私がこれらの手法を使用しているクライアントは、これに関するいくつかのブログ投稿をサポートすることに興味を持っているため、6 月中旬に公開されることを願っています。

于 2012-05-23T20:50:05.837 に答える