我在这里遇到了一个失败的测试,我无法理解。我正在使用Test :: Unit和Shoulda增强功能。 users_controller.rb
中的行动我正试图测试......
def create
unless params[:user][:email] =~ / specific regex needed for this app /i
# ...
render :template => 'sessions/new'
end
end
...测试
context 'on CREATE to :user' do
context 'with invalid email' do
setup { post :create, { 'user[email]' => 'abc@abcd' } }
should_respond_with :success
end
# ...
end
失败,因为“响应是<:success>,但是< 302>”。怎么样302?
将行动改为......
def create
render :template => 'sessions/new'
end
测试仍然失败。
答案 0 :(得分:1)
@Ola:你错了:POST连接到create。 PUT通常连接到更新。
答:禁止是安静的奇怪。以下是一些找到问题的建议(我从未使用过Shoulda,但我不认为这是与Shoulda的问题。
希望这有帮助。
答案 1 :(得分:-1)
如果你使用默认的REST-ful URL,你可能应该使用PUT,而不是POST ......由于PUT连接到create,因此对该URL的POST会给你一个未经授权的重定向。