我创建用户的方法在users_controller.rb看起来像创建一个测试:Rspec的控制器测试,尝试以“processlogin”行动
def process_login
is_login_valid(params[:user][:user_name], params[:user][:password])
if logged_in?
redirect_to root_url
else
@user = User.new(params[:user][:user_name]
redirect_to :action => 'login'
end
我有什么当前:
describe UsersController do
describe "Post 'process_login'"
it "should be successful" do
post 'process_login'
response.should be_success
end
end
end
的方法is_login_valid和logged_in?都包含在application_controller中,并且是来自我的/ lib文件夹中的一个ruby类的方法,名为LoginSystem.rb
我的测试失败了,因为它没有正确地嘲弄事情,这是我第一次这样做希望有人能帮助我。
错误消息:
UsersController POST 'process_login' should be successful
Failure/Error: post 'process_login'
NoMethodError:
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]
# ./app/controllers/users_controller.rb:11:in `process_login'
# ./spec/controllers/users_controller_spec.rb:21
你的问题是什么? – 2011-05-19 17:11:36
我更新了q,我需要测试通过。 – Blankman 2011-05-19 17:12:37
如果您提供错误消息,它可能会有所帮助。 – 2011-05-19 17:13:45