【问题标题】:How catch http data repsponce in test via Capybara如何通过 Capybara 在测试中捕获 http 数据响应
【发布时间】:2016-01-29 10:54:18
【问题描述】:

在应用程序中,我们使用 3 部分服务,有时会损坏。我们定期测试 Capybara, Poltergeist 的应用程序。但是对于在错误日志中更具体的测试,我需要在从 get/post api 调用到该 3-th par 服务的测试数据响应中捕获。我知道 Poltergeist 方法 page.driver.network_traffic 但这里没有数据,仅对我有用 response.urlresponse.status ,但我也想以某种方式获取数据。提前致谢。

【问题讨论】:

    标签: ruby-on-rails capybara automated-tests httpresponse poltergeist


    【解决方案1】:

    Capybara 不适合或设计用于 API 测试,请参阅此博客文章 http://www.elabs.se/blog/34-capybara-and-testing-apis。如果不破解底层代码,就无法访​​问 get 和 post 请求或响应。相反,请尝试 RackTest。创建 RackTest 是为了专门测试 API:https://github.com/brynary/rack-test

    编辑: 带有 rack-test 的主页文档不清楚,但您可以使用 Rack::Test::Methods mixin 来获取响应,请参阅 http://www.rubydoc.info/github/brynary/rack-test/Rack/Test/Methods

    例如:

    require 'rack/test'
    
    class MyTest < Test::Unit::TestCase
      include Rack::Test::Methods
    
      def app
         MyApp.new
      end
    
      def my_test
        get '/'
        assert last_response.ok?
        assert_equal '<expected_response>', last_response.body
      end
    
    end
    

    【讨论】:

    • 谢谢!,很有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 2012-01-29
    相关资源
    最近更新 更多