1
我有以下控制器操作和測試。我是新來的測試與Shoulda和我知道有我的控制器的領域,我可以進一步測試。例如,我的Flash消息以及驗證渲染。如何使用Shoulda正確測試此控制器操作?
所以我的問題是,我將如何在Shoulda中正確地測試此控制器操作?
我的控制器動作(名稱已更改爲保護無辜者):
def my_action
return redirect_to(root_url) if @site.nil?
@owner = current_site.owner
if request.post?
if params[:password].blank? || params[:email].blank?
flash[:error] = "You must fill in both the e-mail and password fields"
render :action => "my_action"
else
if @owner.authenticated?(params[:password])
@owner.login = params[:email]
@owner.save!
@owner.do_some_method
flash[:success] = "Success."
render :action => "my_action"
else
flash[:error] = "Incorrect password"
render :action => "my_action"
end
end
end
end
我的測試:
context "on POST to :my_action" do
setup do
Owner.any_instance().expects(:do_some_method)
post :my_action, :email => '[email protected]', :password => 'test'
end
should_assign_to :owner
should "Change name and verify password and resend activation key" do
assert_equal true, assigns(:owner).authenticated?('test')
assert_equal '[email protected]', assigns(:owner).login
end
should_respond_with :success
end