【发布时间】:2012-03-31 17:57:15
【问题描述】:
我有以下规范来测试控制器方法:
context "#create" do
it "should redirect when model is valid" do
User.stub!(:valid?).and_return(true)
post :create, :user => FactoryGirl.attributes_for(:user)
response.should redirect_to("/")
end
it "should render new template when model is invalid" do
User.stub!(:valid?).and_return(false)
post :create, :user => FactoryGirl.attributes_for(:user)
response.should render_template(:new)
end
end
还有控制器本身:
def create
@user = User.new(params[:user])
if @user.save
redirect_to "/", :notice => "User created"
else
render "new"
end
end
非常简单的代码,但不知何故 stub! 方法并没有真正存根,所以第二个规范失败了 expecting <"new"> but rendering with <"">。它只是像 valid? 返回 true 一样重定向。
我对 Rails 世界很陌生。我错过了什么?谢谢。
【问题讨论】:
标签: ruby-on-rails ruby rspec