2

我对 Faraday 的存根 API 不是特别熟悉,但从对其和Balanced::Client来源的随意检查来看,看起来我需要能够为Balanced::Client.conn.

这是通过库中的配置选项支持存根连接模式的一步,而在该切换上翻转时,我可以将Balanced::Client.conn其用作存根我期望在测试期间发生的任何请求的句柄。

为各种平衡 API 调用和/或一些内置存根响应提供示例响应主体以用作我自己的存根的模板也是非常有用的。

这似乎是一个合理的计划,还是我走错了方向?我该怎么做呢?

4

2 回答 2

2

我建议看一下balance-ruby库的单元测试是如何编写的。他们使用VCR来记录和回放网络呼叫。

虽然与您的确切问题无关,但您也可以通过construct_from_response对继承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 回答