2

私はファラデーのスタブ API に特に精通していませんが、それとBalanced::Clientのソースをざっと調べたところ、 に独自の値を提供できるようにする必要があるようですBalanced::Client.conn

これは、ライブラリの構成オプションによってスタブ接続モードをサポートするためのステップですが、そのトグルをオンにするとBalanced::Client.conn、テスト中に発生すると予想されるリクエストをスタブ化するためのハンドルとして使用できます。

また、さまざまな Balanced API 呼び出しの応答本文の例や、独自のスタブのテンプレートとして使用する組み込みのスタブ応答があると非常に便利です。

これは合理的な計画のように思えますか、それとも間違った方向に向かっているのでしょうか? どうすればこれを行うことができますか?

4

2 に答える 2

2

バランスの取れた Rubyライブラリの単体テストがどのように記述されているかを確認することをお勧めします。VCRを使用して、ネットワーク コールの記録と再生を行います。

正確な質問には関係ありませんが、 のクラスconstruct_from_responseから継承する任意のオブジェクトで メソッドを使用して、オブジェクトの 1 回限りのインスタンスを作成することもできます。これにより、次のようにオブジェクトの単一インスタンスを作成できます。Resourceresource.rb

1.9.3p194 :034 > payload = {:name"=>"Bob", :uri=>"/v1/marketplaces/M123/accounts/fake"} 
1.9.3p194 :035 > account = Balanced::Account.construct_from_response payload
1.9.3p194 :036 > account.name
 => "Bob" 

ペイロードのパラメーターが必要であることに注意してくださいuri。そうしないと、ライブラリーがサーバーからオブジェクトを検索しようとします。

于 2012-10-22T23:53:04.683 に答える
0

このようなことができます。gem webmock https://github.com/bblimke/webmockを使用する

そして、自分自身にリクエストをスタブします:

stub_request(:get,"https://<your secret key>:@api.balancedpayments.com/v1/customers   email=#<test email>")
.with(:headers => {'Accept'=>'*/*',
                   'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
                   'User-Agent'=>'balanced-ruby/0.7.4'})
.to_return(:status => 200, :body => "", :headers => {})
于 2014-02-09T02:52:32.983 に答える