3
私はajaxを使用してサブミットされたフォームを持っています。Rspecテストに失敗しました
これはすべて動作します。ここ
コントローラである:ここ
def create_bp
@user = User.new(params[:user])
respond_to do |format|
if @user.save
flash[:success] = "Your friend's details have been saved."
#format.html { render :template => 'pages/home'}
format.js { render :action => "success" }
else
format.html { render :template => 'pages/home'}
format.js { render :action => "failure" }
end
end
end
はuser_controller_spec試験である:ここ
it "should show the correct flash message" do
xhr :post, :create_bp, :user => @attr
flash[:success].should =~ /Your friend's details have been saved./i
end
は、それが失敗した場合、試験によって与えられたメッセージである。
1) UsersController Ajax 'create_bp' success should show the correct flash message
Failure/Error: flash[:success].should =~ /Your friend's details have been saved./i
expected: /Your friend's details have been saved./i
got: nil (using =~)
# ./spec/controllers/user_controller_spec.rb:77:in `block (4 levels) in <top (required)>'
The flash message is being created and I can see it on the page as well.
はなぜ私はフラッシュを設定している場合はそれがないと言う[:成功]コントローラの右側に?
'@user.save'がtrueを返していますか?たぶん妥当性検査が失敗しているかも –
わかりませんが、コントローラをテストしているので、これはrender_viewsを追加したい状況ですか?参照:http://stackoverflow.com/questions/9027518/what-does-render-views-do-in-rspec別のオプションは、カピバラとキュウリIMHOでこのような高レベルの動作をテストすることです。 –
メッセージを確認する前に保存が機能したかどうかを確認してください。これにより、あなたはより簡単に生きることができます。 – Fa11enAngel