assert_select
之后assert_redirected_to
能否正常工作?我有以下控制器操作,我遇到了失败。
test "get switchboard" do
...
assert_redirected_to employees_url # success
assert_select 'div' # fail
end
答案 0 :(得分:2)
这个问题很老了,但是我会继续回答它,因为我遇到了类似的问题。 assert_select
可以在重定向后工作,但您必须先告诉测试“关注”重定向。所以,在你的情况下,你可以做这样的事情:
test "get switchboard" do
...
assert_redirected_to employees_url # redirected, not "success" per se
follow_redirect! # this is what you need to do
assert_response :success # if you still want to...
assert_select 'div'
end
答案 1 :(得分:0)
assert_select
的工作原理与docs中描述的相同。
我假设您正在尝试对要重定向到的页面上的某些元素执行assert_select
。这个问题是重定向的路线实际上没有被渲染。
如果我是你,我会做的第一件事就是在binding.pry
前面放assert_select
并看看response.body
,这将揭示实际上是什么渲染。我的猜测是你会看到类似的东西:
<html><body>You are being <a href=\"https://bigoldtest.net/as/1/oauth_provider_credentials?response_code=success\">redirected</a>.</body></html>"
而不是您将被重定向到的实际页面。