5 rspec ruby-on-rails webmock octokit
Octokit 响应属于Sawyer::Response类型
它们看起来像这样:
{:name=>"code.py",
:content => "some content"}
Run Code Online (Sandbox Code Playgroud)
我正在尝试像这样存根我的请求
reponse_body = {:content => "some content"}
stub_request(:any, /.*api.github.com\/repos\/my_repo\/(.*)\/code.py/).to_return(:status => 200, :body => response_body)
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我然后调用 response.content,所以我希望能够从响应中获取内容。
我目前收到错误:'WebMock::Response::InvalidBody: must be one of: [Proc, IO, Pathname, String, Array]。'哈希'给出'。response_body 的正确格式是什么?如果我将其转换为 json,则无法对代码中的对象执行 response.content。
您传递一个哈希作为预期响应,而 Webmock 不知道应该将其编码为什么(请参阅此 Webmock 问题)。正如您所提到的,您可以使用response_body.to_json,但是您将无法使用点符号来访问数据。
由于您\xe2\x80\x99正在使用RSpec,所以我\xe2\x80\x99d利用测试双打来假装您有一个Sawyer::Resource对象:
response_body = \n [\n double("Sawyer::Resource",\n {\n :name=>"code.py",\n :content => "some content"\n })\n ]\nRun Code Online (Sandbox Code Playgroud)\n\n然后,您应该能够使用点符号访问数据,就像使用实际响应一样。
\n| 归档时间: |
|
| 查看次数: |
1606 次 |
| 最近记录: |