2011-07-28 11 views
2

私のアクティブリソースは、何らかの理由で応答するのに時間がかかる、愚かな外部サービスに接続します。これはちょっと気味悪いです。開発期間を短縮するため、開発中にActive Resourceをスタブしたいと思います。アクティブリソースをスタブする方法

これは良いことですか?それはそうですね。そうでなければ、説明してください。

環境設定ファイルのスイッチに基づいて、この目的のために使用した可能性のあるgem/pluginに基づいてスタブする仕組みがありますか?

あなたは何をどのように経験していますか?

答えて

1

FakeWebをお勧めします。私は最近これをプロジェクトで使用していて、あらかじめ定義されたレスポンスでいくつかの外部URLを登録することができました。テストのセットアップでは、あなたが行うことができます:

FakeWeb.register_uri(:get, %r|users.xml|, :body => File.read("spec/factories/xml/users.xml")) 

を今アクティブなリソースは、(テスト環境で)anyhost.com/users.xmlを要求するたびに、あなたの代わりにすぐに参照されるファイルの内容を取得します。私はこのアプローチが気に入っています。なぜなら、あなたがモデルをテストしているときに、外部サービスをテストしたくないからです。私はそのレベルのテストを統合テストに任せます。

これは開発環境や運用環境には影響しませんので、いつものようにあなたの愚かな外部サービスを使用することができます。

関連する問題