我正在尝试使用capybara验证页面的响应代码。我使用了预期语句作为-
expect(page.status_code).to eq(404)
我得到的错误是-
Capybara::NotSupportedByDriverError:
Capybara::Driver::Base#status_code
Capybara可能不支持status_code。是否有其他方法可以验证状态/响应代码,或者我在expect语句中做了错误的事情。
Selenium驱动程序不支持status_code,因为它不是真正应该在功能/系统测试中测试的东西。功能/系统测试(Capybara的目标(的理念是从用户的角度进行测试。由于用户关心浏览器中显示的内容,因此应该测试哪些内容,而不是状态代码。如果您仍然想测试状态代码,应该在请求规范中进行,而不是在功能/系统规范中进行
如果您不需要JavaScript,您可以尝试使用默认的rack_test驱动程序:
it "responds with status code 404", js: false do
expect(page.status_code).to eq(404)
end