2
我正在使用padrino和rspec,我希望能夠測試我編寫的幫助程序方法。如何在rspec中使用padrino幫助程序方法
我
規格/應用/控制器/ sessions_controller_spec.rb
describe "POST /sessions" do
it "should populate current_user after posting correct user/pass" do
u = User.create({:email=>"[email protected]", :password=>"helloworld", :password_confirmation=>"helloworld"})
user = {
email:"[email protected]",
password:"hellowolrd"
}
post '/sessions/new', user
current_user.should_not == "null"
end
end
應用程序/控制器/ sessions_controller.rb
post "/new" do
user = User.authenticate(params[:email], params[:password])
if user
session[:user_id] = user.id
redirect '/'
else
render "sessions/new"
end
end
應用程序/傭工/ sessions_helper.rb
Testing.helpers do
def current_user
@current_user ||= User.find(:id=>session[:user_id]) if session[:user_id]
end
end
所以這是一個真正的兩部分問題。第一部分是我的方法current_user甚至沒有找到。其次,我相信如果找到它,它可能會引發錯誤,因爲未定義會話。但首先,我爲什麼要獲取undefined_method current_user?
Failures:
1) SessionsController POST /users should populate current_user after posting correct user/pass
Failure/Error: current_user.should_not == "null"
NameError:
undefined local variable or method `current_user' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_2:0x0000000313c0d8>
# ./spec/app/controllers/sessions_controller_spec.rb:20:in `block (3 levels) in <top (required)>'