【发布时间】:2010-09-28 08:33:37
【问题描述】:
我正在尝试测试以下控制器代码在成功注册时呈现成功模板的条件
def create
@user = User.new(params[:user])
if @user.save
render :template => "success"
else
flash[:notice] = "Oops Somethings not quite right! :("
render :action => "new"
end
end
我正在使用以下规范来测试这段代码
before(:each) do
@user = User.new
@user.attributes = valid_attributes
@params = valid_attributes
@user.stub!(:save).and_return(true)
end
def do_post
post :create
end
it "should create new user " do
count = User.count
do_post
user = User.new(@params)
user.save.should eql(true)
User.count.should eql(count + 1)
end
it "should render the success page on successful signup" do
do_post
@user.save
response.should render_template("success") if @user.save
end
但示例失败“它应该在成功注册时呈现成功页面”并显示此错误消息
1)
'UsersController handling POST /users should render the success page on successful signup' FAILED
expected "success", got "users/new.html.erb"
./spec/controllers/users_controller_spec.rb:67:
成功视图是存储在视图/用户/中的模板,没有操作。我猜我犯了一个非常根本的错误,需要一些帮助。
【问题讨论】:
-
我会删除你最后一个断言的 user.save 条件。
-
伙计,你的问题是我的答案。
标签: ruby-on-rails rspec