【问题标题】:Verify the response code of the page with Capybara and Selenium使用 Capybara 和 Selenium 验证页面的响应代码
【发布时间】:2019-05-06 16:57:53
【问题描述】:

我正在尝试使用 capybara 验证页面的响应代码。我将期望语句用作 -

    expect(page.status_code).to eq(404)

我得到的错误是 -

    Capybara::NotSupportedByDriverError:
    Capybara::Driver::Base#status_code

可能是 Capybara 不支持 status_code。有没有其他方法可以验证状态/响应代码,或者我在期望语句中做错了什么。

【问题讨论】:

    标签: ruby rspec capybara rspec-rails


    【解决方案1】:

    Selenium 驱动程序不支持 status_code,因为它实际上不是您应该在功能/系统测试中测试的东西。功能/系统测试(Capybara 的目标)的想法是从用户的角度进行测试。由于用户关心浏览器中显示的内容,因此应该测试什么而不是状态代码。如果您仍想测试状态代码,则应在请求规范而不是功能/系统规范中完成

    【讨论】:

    • 将此测试移至您的控制器测试,然后检查 response.content_type、response.status、response.headers、response.body。
    猜你喜欢
    • 2011-12-16
    • 1970-01-01
    • 2022-01-05
    • 2019-05-23
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    相关资源
    最近更新 更多