Capybara & Cucumber - 具有预期控制器异常的功能失败
Capybara & Cucumber - feature with expected controller exceptions fails
我最近切换到水豚 2.5.0 和 webkit 1.7.1。
我有一个黄瓜功能,我想在其中 检查我的 javascript 处理失败的 ajax 请求。
使用之前的水豚版本:
- 我存根了一个 API 请求以响应 400 因此控制器操作引发了这个异常 (
RestClient::BadRequest
) 而没有拯救它。
- 如果 ajax 请求失败,我的 javascript 会显示一条自定义消息。
- 当控制器引发异常时,该功能没有失败,流程继续正常进行。 ajax 请求失败,我的 js 正在按预期处理它。
使用新的水豚版本:当异常发生在控制器级别时,该功能失败。
我不希望该功能在该级别停止,而是继续向浏览器响应错误,以便我可以用我的 js 处理错误。
我猜这种行为变化不是因为水豚更新,而是因为您将 web_console gem 移出了测试组。这意味着服务器中实际上从未引发异常,因为 web_console 捕获了所有异常。既然没有捕获到异常,Capybara 就会显示它们。水豚的 Capybara.raise_server_errors 设置为 enable/disable 该行为。
Capybara.raise_server_errors = 假
我最近切换到水豚 2.5.0 和 webkit 1.7.1。
我有一个黄瓜功能,我想在其中 检查我的 javascript 处理失败的 ajax 请求。
使用之前的水豚版本:
- 我存根了一个 API 请求以响应 400 因此控制器操作引发了这个异常 (
RestClient::BadRequest
) 而没有拯救它。 - 如果 ajax 请求失败,我的 javascript 会显示一条自定义消息。
- 当控制器引发异常时,该功能没有失败,流程继续正常进行。 ajax 请求失败,我的 js 正在按预期处理它。
使用新的水豚版本:当异常发生在控制器级别时,该功能失败。
我不希望该功能在该级别停止,而是继续向浏览器响应错误,以便我可以用我的 js 处理错误。
我猜这种行为变化不是因为水豚更新,而是因为您将 web_console gem 移出了测试组。这意味着服务器中实际上从未引发异常,因为 web_console 捕获了所有异常。既然没有捕获到异常,Capybara 就会显示它们。水豚的 Capybara.raise_server_errors 设置为 enable/disable 该行为。
Capybara.raise_server_errors = 假