Rails:在RSpec测试中调用'render'时"缺少部分"

Woo*_*tty 5 ruby unit-testing rspec ruby-on-rails view

我正在尝试测试表单的存在.我是Rails的新手.

我的new.html.erb_spec.rb文件内容是:

require 'spec_helper'

describe "messages/new.html.erb" do
  it "should render the form" do
    render '/messages/new.html.erb'
    reponse.should have_form_putting_to(@message) 
    with_submit_button
  end
end
Run Code Online (Sandbox Code Playgroud)

视图本身new.html.erb具有以下代码:

<%= form_for(@message) do |f| %>
  <%= f.label :msg %> <br />
  <%= f.text_area :msg %>
  <%= f.submit "Submit" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

当我跑步时rspec,它失败了:

1) messages/new.html.erb should render the form

 Failure/Error: render '/messages/new.html.erb'

   Missing partial /messages/new.html with {:handlers=>[:erb, :rjs,:builder,:rhtml, :rxml], :formats=>[:html,:text, :js, :css, :ics, :csv, :xml, :rss, :atom, :yaml, :multipart_form, :url_encoded_form, :json], :locale=>[:en, :en]} in view paths "/Users/tristanmartin/whisperme/app/views"

   # ./spec/views/messages/new.html.erb_spec.rb:5:in `block (2 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)

有谁知道问题是什么?

谢谢!

Ese*_*ulu 6

不要给'渲染'任何参数.尝试以下方法

require 'spec_helper'

describe "messages/new.html.erb" do
  it "should render the form" do
    render
    rendered.should contain('blablabla') 
  end
end
Run Code Online (Sandbox Code Playgroud)