所有断言都通过,但我收到错误:
1)错误:
test_should_perform_user_login(SessionsControllerTest):
NameError: undefined local variable or method `create' for StoriesController:Class
以下是测试的代码:
def test_should_perform_user_login
post :create, :login => 'patrick', :password => 'sekrit'
assert_redirected_to stories_path
assert_equal users(:patrick).id, session[:user_id]
assert_equal users(:patrick), assigns(:current_user)
end
这是我在`sessions_controller.rb:
中定义create方法的地方def create
@current_user = User.find_by_login_and_password(params[:login], params[:password])
if @current_user
session[:user_id] = @current_user.id
if session[:return_to]
redirect_to session[:return_to]
session[:return_to] = nil
else
redirect_to stories_path
end
else
render :action => 'new'
end
end
这有帮助吗?
我正在读这本书'Simply Rails 2'。
答案 0 :(得分:0)
修复了最大错误。
NameError: undefined local variable or method `create' for StoriesController:Class
这来自before_filter
调用,您从方法符号数组中离开了:
(冒号)。
下一个错误发生在application.rb
;它的错误是:
NameError: undefined local variable or method `redirect_to_new_session_path'
redirect_to
方法及其参数new_session_path
之间有一个额外的下划线。
接下来是商店测试中的虚假选择器。最后我作为练习留给读者:)(提示:有两个问题。)