में डेविस के साथ लॉग इन/आउट उपयोगकर्ताओं को कैसे लॉग इन करें मैं रेलवे 4 में डेविस के साथ उचित उपयोगकर्ता पहुंच को बनाए रखने की कोशिश कर रहा हूं, और मुझे परीक्षण सूट में उपयोगकर्ता को लॉगिंग करने में कठिनाई हो रही है।रेलवे 4 परीक्षण
सबसे सामान्य स्थिति:
require 'test_helper'
include Devise::TestHelpers
class SiteLayoutTest < ActionDispatch::IntegrationTest
def setup
@user = users(:test1)
end
test "logged in should get index" do
sign_in @user
get users_path
assert_response :success
assert_select "title", "User Index"
end
end
अब तक मैं और अधिक वास्तव में से सिर्फ वसीयत और उचित कार्रवाई के साथ एक उपयोगकर्ता नियंत्रक को लागू नहीं किया है।
मुझे लगातार NoMethodError: undefined method 'env' for nil:NilClass
मिलती है, विशेष रूप से sign_in @user
युक्त रेखा का जिक्र करते हुए और मुझे अन्य लोगों को एक ही त्रुटि मिल रही है, लेकिन समस्या को हल करने का प्रयास करने वाले किसी भी वास्तविक समाधान को कभी नहीं लगता है।
परीक्षण प्रयोजनों के लिए रेलवे 4 में डेविस के साथ उपयोगकर्ता को लॉग इन कैसे करूं? धन्यवाद।
संपादित करें:
जुड़नार/users.yml
test1:
id: '1'
email: '[email protected]'
encrypted_password: <%= Devise::Encryptor.digest(User, "password") %>
created_at: <%= Time.now - 6.minutes %>
updated_at: <%= Time.now - 4.minutes %>
सीटू समाधान:
test "logged in should get index" do
post user_session_path, 'user[email]' => @user.email, 'user[password]' => 'password'
get users_path
assert_response :success
assert_select "title", "User Index"
end
क्या आपने यह कोशिश की है उदा। '@user = user.find (1)' सेटअप में –
: test1 को फिक्स्चर में परिभाषित किया गया है। ओपी को प्रतिबिंबित करने के लिए संपादित किया। – spectre6000
कृपया फिक्स्चर में एक और कुंजी जोड़ें i.e. 'user:' 'test1:' के अंदर 'और उपयोगकर्ता कुंजी –