rspec получава грешка Грешка/Грешка: response.should render_template

Използвам rails 4 и rspec 3. Имам контролер, който искам да тествам с помощта на rspec, но получавам следната грешка

Failure/Error: response.should render_template :show
expecting <"show"> but rendering with <[]>

Controller_spec е така

  describe "GET #show" do 
    it "renders the #show view" do 
    get :show, id: FactoryGirl.create(:product)
    response.should render_template :show
  end
 end

Частичното _show.html е така

    <h2><%= @product.name %></h2>
<div class="product-price"> <h3><%= number_to_currency @product.price %> </h3></div>
<div class="product-description well"><%= @product.description %> </div>
</div>

<%= link_to "Edit", edit_product_path , remote: true, class: "btn btn-primary" %>
<%= link_to "Delete", product_delete_path(@product), remote: true, class: "btn btn-danger" %>

show.js.erb е така

$("#product-details").html("<%= escape_javascript(render 'show') %>")

и функцията за показване в product_controller е

 def show
    @product = Product.find(params[:id])
       respond_to do |f|
  f.html { render nothing: true } # prevents rendering a nonexistent template file
  f.js # still renders the JavaScript template
end
  end

person custosat    schedule 07.02.2015    source източник


Отговори (1)


Спецификацията изисква HTML и тъй като не изобразявате нищо (render nothing: true), резултатите, които получавате, са правилни. Ако искате да тествате изобразяването на шаблона .js, предварете get с xhr:

xhr get :show, id: FactoryGirl.create(:product)
person infused    schedule 07.02.2015