Rspec渲染文本

时间:2012-06-06 05:20:41

标签: ruby-on-rails ruby-on-rails-3 rspec capybara rspec-rails

我有这个代码

if @temp_user.save
  sign_in(:user, @temp_user)
  render text: "OK"
else
  render text: render_to_string(:partial => "errors")
end

我尝试用rspec验证渲染“OK”

这是我的实际规格:

  it "render text OK" do   
    post :create, {:agent => valid_attributes}
    # response.should have_content("OK")
    response.should render_template(:text => "OK")
  end

但是这个规范总是会响应0次失败,即使我把“OKI”放到了“OK”

任何人都有一个建议吗?

3 个答案:

答案 0 :(得分:12)

response.body.should == "OK"

适合我

答案 1 :(得分:4)

如果您使用的是rails 3或以上

expect(response.body).to eq "OK"

将起作用

答案 2 :(得分:1)

describe "render text OK" do   
  post :create, {:agent => valid_attributes}
  # response.should have_content("OK"
  response.should render_template(:text => "OK")
end