2011-12-08 7 views
3

私のアプリケーション(モデル、ビュー、コントローラ)とRSpecの両方で利用できるいくつかのメソッドを作成する必要があります。アプリケーションとRSpecの両方で使用できるようにする方法はどこに保存する必要がありますか?

具体的には、クリティカルなロジックを含むpath_helperメソッドをいくつか作成する必要があります。だから何が必要がある場合 - しかし、私はこの(ミックスインモジュールを構築するかどうかはわかりません私は、彼らが/libのどこかに行く必要があることを前提とし

controller.should redirect_to my_custom_path_helper(@object) 

:私は次のように私がテストを実行できるように、RSpecのためにそれらを利用できるようにする必要があります私はモジュールを混ぜる?)。

RSpecからApplication Helpersにアクセスできるかどうかの選択肢があります。

EDIT:

これは、アプリケーションとRSpecの両方にそれらにアクセスすることについてですテストヘルパーメソッドについての質問ではありませんのでご注意ください。

は、私は私のレールpath_helpersのラッパー・ロジックを必要とするので、このを行う必要があると私はRSpecの中should redirect_to .._pathをテストするとき、私はそれらのパスヘルパーのロジックを複製する必要はありません。

答えて

12

あなたはRSpecのは(スペック/ spec_helper.rbで)によって、モジュールを含めることができます:あなたがルーティングパスヘルパーを使用したい場合は

RSpec.configure do |config| 
    config.include YourModule 
end 

は、あなたがこのようにそれらを含めることができます。

RSpec.configure do |config| 
    config.include Rails.application.routes.url_helpers 
end 
0

はそれを試していないが、これは問題に興味深いアプローチのようになります。 Adding rspec test for library module doesn't seem to pickup Expectations and Matchers

モジュールをテストするとき、我々は頻繁に使用するモデルは、テスト用に作成したクラスのいずれかでモジュールを含めることです(specファイルの内側)、またはspec自体の中に含まれています。

1

RSpecのレールの宝石は宝石があなたのスペックのいずれかにヘルパーが利用できるようにすることができhelper testing

をサポートするようだ:「あなたのヘルパーのための仕様を書くことは簡単ですただ、例のグループにの名前を教えてヘルパーを含み、Example Groupはヘルパーを含むオブジェクトを公開します。

+0

もう一度m_x。私はヘルパーテストを探していません。私はヘルパーを利用可能にするために探しています –

+0

宝石は[あなたの仕様のいずれかで利用できるヘルパー](http://rspec.info/rails/writing/)を作ることができます: "あなたのヘルパーのための仕様を書くことは簡単です。 Exampleグループ ヘルパーの名前をグループ化し、Exampleグループは__includes the helper__ "というオブジェクトを公開します。私はいつもあなたを助けようと過ごした後、-1について少し悲しいです。 –

+0

あなたは完全に正しいです。私はそれを行いました。なぜなら、あなたの後のコメントは、最初のものがヘルパーのテストに関係していた理由を説明したからです。いずれにせよ私はお詫びします、あなたの助けは非常に貴重であり、それをdownvoteするのは無礼でした。あなたの後のコメントを含めるように編集することができます場合、私はdownvoteを変更することができます。ありがとうございました。 –

関連する問題