Rails: "missing partial" when calling "render" in RSpec test

I am trying to check for a form. I am new to Rails.

My new.html.erb_spec.rbfile content:

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

In the view itself, new.html.erb, there is code:

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

When I run rspec, it does not work like this:

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)>'

Does anyone know what the problem is?

Thank!

+5
source share
3 answers

don't give arguments for "rendering". try the following

require 'spec_helper'

describe "messages/new.html.erb" do
  it "should render the form" do
    render
    rendered.should contain('blablabla') 
  end
end
+6
source

, , , , . , , rspec . - - .

, :

render :template => "messages/new.html.erb"

. , .

.

:

render "messages/new.html.erb"

render

. . , .:)

+1

, Rspec . :

require 'spec_helper'

describe "bills/payments/edit.html.erb" do
  it "Renders payment form" do
    assign(:payment, stub_model(Payment))
    render
  end
end

- / :

describe "bills/payment/edit.html.erb" do

, , . .

+1

All Articles