【发布时间】:2011-11-28 06:37:25
【问题描述】:
我有控制器
class ApplicationController < ActionController::Base
def index
end
private
def handle_login_sequence
username = params[:userName]
password = params[:password]
cookies[:locale] = params[:locale]
remember = params[:remember]
username_locked = User.locked_username?(username)
user = User.authenticate(username, password)
if user && user.has_portal_access?
case user.account_status
when AccountStatus::Active
flash[:error] = 'login'
end
end
end
end
我想为这个私有方法写 Rspec
@controller = ApplicationController.new
@controller.send(:handle_login_sequence)
通过上面的代码我可以调用handle_login_sequence方法但是我不知道如何传递下面的:
params[:userName], params[:password], params[:locale], params[:remember]
【问题讨论】:
-
到目前为止,您的规范是什么样的?
-
你有一个 nil 对象,你没想到它!您可能期望 ActiveRecord::Base 的实例。评估 nil 时发生错误。[] (我给了 put inside 打印的方法)
标签: ruby-on-rails methods rspec private