我創建用戶的方法在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