gpt4 book ai didi

ruby-on-rails - 如何使用设计 user_signed_in?集成测试中的方法?

转载 作者:行者123 更新时间:2023-12-04 05:46:59 25 4
gpt4 key购买 nike

当我在集成测试中有 assert user_signed_in? 时,它说该方法未定义。有没有办法在我的测试中使用这种方法?我正在使用 Rails 4 和最新版本的设计。这是我的测试文件:

require 'test_helper'

class UsersSignupTest < ActionDispatch::IntegrationTest

test "valid signup information" do
get new_user_registration_path
assert_difference 'User.count', 1 do
post_via_redirect user_registration_path,
user: { first_name: "Example",
last_name: "User",
email: "user@example.org",
password: "password",
password_confirmation: "password" }
end
assert_template 'activities/index'
assert user_signed_in?
end

最佳答案

user_signed_in? 方法包含在 Devise::Controllers::Helpers 模块中,该模块在您的集成测试中不可用,因此您不能使用它。

您可以选择模拟此方法(这不会真正满足您的测试需求)或通过查找仅在用户登录时才会呈现的页面内容来测试用户是否已登录,如 例如,注销 链接或 已成功登录 消息。

对于您的 Controller 测试,您可以使用设计测试助手 include Devise::TestHelpers,它为您公开了 sign_insign_out 方法,更多在 Gem 的主页上 https://github.com/plataformatec/devise

关于ruby-on-rails - 如何使用设计 user_signed_in?集成测试中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32554761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com