1

開発環境で特定のメソッドを動的にスタブする信頼できる方法を探しています。ユースケースの1つの例は、通常はFacebook Graph APIへのアクセスを必要とする開発を行う必要があるが、インターネットにアクセスできない場合です。fb_graphメソッドの呼び出しをスタブ化して、認証されてプロファイルデータを持っているように見せたいです。理想的には、設定を少し変更するだけでスタブをオンまたはオフにすることができます。

何か案は?モカのようなものがこれを処理できると思いますか?

4

2 に答える 2

1

最初のHTTPリクエストの結果をymlファイルに記録し、その後のhttpリクエストでそのymlファイルの内容を使用するVCRgemを使用できます。次に、必要に応じて、VCRロジックを無視し、常にHTTP要求を行うように構成できます。

https://www.relishapp.com/myronmarston/vcr

于 2012-05-25T14:46:59.357 に答える
1

モカは確かにそれを行うことができます。しかし、それは少し奇妙に感じます。

依存性注入のようなこともできます。

例えば:

class User < AR::Base

  def find_friends
    Facebook.find_friends(facebook_id)
  end

end

class Facebook

  def self.find_friends(id)
    # connect to Facebook here
  end

end

class FakeFacebook

  def self.find_friends(id)
    # a fake implementation here
  end

end

そして初期化子の内部:

if Rails.env.development?
  User::Facebook = FakeFacebook
end
于 2012-05-25T10:50:45.540 に答える