我正在训练营中,似乎无法通过这项测试。该项目正在创建您的twitter的bootleg版本,测试是:
it 'signup directs user to twitter index' do
params = {
:username => "skittles123",
:email => "skittles@aol.com",
:password => "rainbows"
}
post '/signup', params
expect(last_response.location).to include("/tweets")
end
我处理此测试的控制器如下:
post '/users' do
@user = User.create(params[:user])
@error = @user.errors.full_messages
unless @error == []
redirect to '/signup'
else
session[:user_id] = @user.id
redirect to '/tweets'
end
end
基本上发生的是,当我注册一个用户并且数据持久保存到数据库中时,我的测试应该通过,因为预期的last_response.location
将包含'/tweets'
,这就是
它重定向到。我不明白为什么它没有过去。
答案 0 :(得分:1)
因为该测试要求发帖/signup
,而不是在用户发布信息以创建我使用的帐户/signup
之后使用/users
作为路由方法名称。这导致了错误。