2012-11-14 37 views
5

मुझे आरएसपीईसी में वैध_सेशन के उदाहरण खोजने में परेशानी हो रही है, और अब मेरे सभी मचान परीक्षणों को प्राधिकरण जोड़ने के बाद टूटा हुआ है।RSpecs valid_session का उपयोग कैसे करें?

माइकल हार्टल के रेल ट्यूटोरियल के माध्यम से जा रहे हैं, मैं, प्रमाणीकरण जो here वर्णन किया गया है का उपयोग कर रहा सिवाय मैं सभी पृष्ठों के लिए लॉगिन की आवश्यकता होती है कर रहा हूँ और प्रवेश करने आदि के लिए 'skip_before_filter' का उपयोग

मैं एक उपयोगकर्ता को शामिल किया स्थिरता, जो मैं सत्यापित करने के बाद लोड हो जाता है:

userexample: 
    id: 1 
    name: Example Name 
    email: [email protected] 
    password_digest: $2a$10$NuWL8f2X0bXaCof3/caiiOwlF2rago7hH10JECmw1p75kEpf0mkie 
    remember_token: YXjPrFfsK8SFQOQDEa90ow 
फिर नियंत्रक कल्पना

def valid_session 
    { remember_token: "YXjPrFfsK8SFQOQDEa90ow" } 
end 

सत्र वह के कोड में

lper

module SessionsHelper 
def sign_in(user) 
    cookies.permanent[:remember_token] = user.remember_token 
    self.current_user = user 
end 

def signed_in? 
    return !current_user.nil? 
end 

def sign_out 
    self.current_user = nil 
    cookies.delete(:remember_token) 
end 

def current_user=(user) 
    @current_user = user 
end 

def current_user 
    @current_user ||= User.find_by_remember_token(cookies[:remember_token]) 
end 
end 

क्या मैं इरादे के अनुसार वैध_शन का उपयोग कर रहा हूं? सत्र के साथ याद रखने की सुविधा प्रदान करेगा, साइन -इन के साथ उपयोगकर्ता में स्पष्ट रूप से साइन इन किए बिना भी काम करेगा? क्या इसे किसी अन्य तरीके से हल किया जा सकता है?

उत्तर

3

यह आप के लिए काम करना चाहिए ...

def valid_session 
    controller.stub!(:signed_in?).and_return(true) 
end 

... कुछ इसी तरह है कि मेरे लिए काम किया पर आधारित: डी

def valid_session 
    controller.stub!(:authorize).and_return(User) 
end 
+0

दूसरा रास्ता मेरे लिए बहुत काम किया! +1 – leomperes

+0

रेल 4 का उपयोग करके यह मेरे लिए काम नहीं करता है, लेकिन मुझे एक सोलन मिला, यहां दिखाया गया है: https://stackoverflow.com/questions/39881504/rspec-controller-specs-fail-after-adding- प्राधिकरण-to -rails4 आवेदन – MERM