我对 Faraday 的 stub API 不是特别熟悉,但通过对其和 Balanced::Client 的来源进行了随意检查。 ,看起来我需要能够为 Balanced::Client.conn
提供我自己的值.
这是通过库中的配置选项支持 stub 连接模式的一步,而打开该开关,我可以只使用 Balanced::Client.conn
作为 stub 我期望在测试期间发生的任何请求的句柄。
为各种 Balanced API 调用和/或一些内置 stub 响应提供示例响应正文以用作我自己的 stub 模板也非常有用。
这看起来是一个合理的计划,还是我正朝着错误的方向前进?我该如何去做呢?
最佳答案
我建议看看unit tests是如何对于 balanced-ruby库是写的。他们使用VCR记录和重播网络调用。
虽然与您的确切问题无关,但您还可以通过在继承自 Resource
类的任何对象上使用 construct_from_response
方法来创建对象的一次性实例resource.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
参数是必需的,否则库将尝试从服务器查找对象。
关于ruby - 在 Balanced Ruby 客户端中使用 Faraday 阻止网络调用的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11890336/