当我在集成测试中有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
答案 0 :(得分:5)
Height+=1;
[self.inputView setNeedsUpdateConstraints];
模块中包含user_signed_in?
方法,这在集成测试中不可用,因此您无法使用它。
您可以选择模拟此方法(这不会真正满足您的测试需求),也可以通过查找仅在用户登录时呈现的页面内容来测试用户是否已登录,如{{1例如,链接或Devise::Controllers:Helpers
消息。
对于您的控制器测试,您可以使用设计测试助手Logout
,为您公开Signed in successfully
和include Devise::TestHelpers
方法,更多内容在Gem的主页https://github.com/plataformatec/devise < / p>