Faraday: 新文档的测试页面

创建于 2019-07-09  ·  4评论  ·  资料来源: lostisland/faraday

基础信息

  • 法拉第版:大师
  • 红宝石版本:2.6.3

问题描述

没有关于法拉第测试的文档。 我工作的地方 引入了 Ruby on Rails,因为它很酷。 很少考虑测试红色案例。 我想贡献一些文档来帮助其他人

重现步骤

  • 访问网站。
  • 点击usage
  • 跟随页脚下一个链接,直到您无法继续前进(https://lostisland.github.io/faraday/usage/streaming)
  • 注意在使用中没有测试:scream_cat:

最有用的评论

谢谢你提出这个问题。 作为回应,我发布了一个 PR,包括使用法拉第测试适配器的实时测试/单元和 rspec 示例:#1000。 这是测试法拉第的推荐方法,而不是外部测试双库(rspec、mocha、webmock 等)。

所有4条评论

谢谢你提出这个问题。 作为回应,我发布了一个 PR,包括使用法拉第测试适配器的实时测试/单元和 rspec 示例:#1000。 这是测试法拉第的推荐方法,而不是外部测试双库(rspec、mocha、webmock 等)。

我从未注意到它是否在测试诸如超时、连接错误等内容。该主题是否令人不悦,或者只是 PR #998 使用的方式。

我想我没有得到语法

我想我没有得到语法

Oof,也许我应该再次重温法拉第测试文档:/

#1000 中的语法使用Faraday::Adapter::Test::Stubs实例,一个独占的存根对象来测试法拉第请求/响应周期。 您可以使用它在特定测试中设置对 http 请求的模拟响应。

  it 'parses name' do
    # this block yields a rack response: an array with:
    # response status, http header hash, and response body
    stubs.get('/ebi') do |env|
      [
        200,
        { 'Content-Type': 'application/javascript' },
        '{"name": "shrimp"}'
      ]
    end

    expect(client.sushi('ebi')).to eq('shrimp')
    stubs.verify_stubbed_calls
end

很抱歉,我显然没有足够彻底地阅读您的问题。 我完全错过了您特别想测试异常的情况。 像这样的测试也有效(我将添加到 #1000):

  it 'handles exception' do
    stubs.get('/ebi') do
      raise Faraday::ConnectionFailed, nil
    end

    expect { client.sushi('ebi') }.to raise_error(Faraday::ConnectionFailed)
    stubs.verify_stubbed_calls
  end

我更喜欢像这样的特定测试替身实现而不是更通用的模拟方法,因为它们仍然贯穿整个法拉第请求工作流程。 如果开发人员无论如何都想使用 RSpec 模拟,那么优秀的 RSpec 文档会更好地为他们服务。

与#1000 一起交付

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

luizkowalski picture luizkowalski  ·  3评论

jedeleh picture jedeleh  ·  3评论

yykamei picture yykamei  ·  4评论

yusefu picture yusefu  ·  3评论

t3hk0d3 picture t3hk0d3  ·  3评论