Je construis un test simple pour afficher le produit pour un utilisateur. Mon spec ressemble à ceci:Rails 3.2 RSpec test confusion avec FactoryGirl
require 'spec_helper'
describe "Show Products" do
it "Displays a user's products" do
product = Factory(:product)
visit products_path
page.should have_content("ABC1")
end
end
et mon usine pour le produit ressemble à ceci:
FactoryGirl.define do
factory :product do
sequence(:identifier, 1000) {|n| "ABC#{n}" }
end
end
J'ai vue simple:
<table id="products">
<thead>
<th>Product ID</th>
</thead>
<tbody>
<% for product in @products %>
<tr>
<td><%= @product.identifier %></td>
</tr>
<% end %>
</tbody>
</table>
L'erreur que je reçois est que il n'y a pas de produits comme @products. Ben ouais. Et c'est ma question. Puisque mon usine est définie comme "produit" et qu'il y a une séquence, comment puis-je mettre les valeurs de "produit" dans une variable appelée "produits".
Je suis fondamentalement dérouté par la syntaxe FactoryGirl ci-dessus. Comment puis-je avoir plusieurs produits générés sur cette ligne, mais le nom de l'usine doit correspondre au modèle?