我不是特别熟悉法拉第的stubbing api,但是从对它和Balanced::Client来源的随意检查来看,我需要能够为Balanced::Client.conn
提供自己的价值。
这是朝着通过库中的配置选项支持存根连接模式迈出的一步,而打开该开关时,我可以将Balanced::Client.conn
用作存根句柄,以便在测试期间执行任何请求。
对于各种平衡的api调用和/或一些内置存根响应,拥有示例响应体作为我自己存根的模板也是非常有用的。
这是一个合理的计划,还是我走错了方向我该怎么做?
最佳答案
我建议看看unit tests库的balanced-ruby是如何编写的。他们使用VCR来记录和重播网络呼叫。
虽然与您的确切问题无关,但您也可以通过对继承自construct_from_response
中Resource
类的任何对象使用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
参数是必需的,否则库将去尝试从服务器上查找对象。