为什么我收到此错误::预期响应为<2XX:成功>,但是却是<302:找到>重定向到<http://www.example.com/users/sign_in>

时间:2019-09-09 09:46:43

标签: ruby-on-rails session devise minitest

After running `RAILS_ENV=test rails test test/controllers我得到了

Expected response to be a <2XX: success>, but was a <302: Found>redirect to <http://www.example.com/users/sign_in>

响应正文:您正在redirected

=====================


class OpeningsControllerTest < ActionDispatch::IntegrationTest

  test "should get new" do
    get new_opening_url
    assert_response :success
  end
end**

2 个答案:

答案 0 :(得分:0)

您可以在运行测试用例时设置current_user吗?如果您没有分配当前用户,则在测试用例中的所有操作之前,使用this引用分配当前用户。

因为如果在应用程序控制器中使用了经过身份验证的用户,或者使用过devise,则需要使用此方法来对用户或admin用户进行身份验证;如果找不到当前用户,则它将重定向到user_sign_in_path。

答案 1 :(得分:0)

尝试类似的东西:

`
class OpeningsControllerTest < ActionDispatch::IntegrationTest

  test "should get new" do
    sign_in users(:rathod)
    get new_opening_url
    assert_response :success
  end
end**
`

这意味着您需要在Fixture文件中创建一个用户:users.yml

rathod:
  email: "JEVBR@test.com"
  first_name: "rathod"
  last_name: "bar"

猜测您正在使用Devise,因此您需要设备的测试助手来访问“ sign_in”助手