Wie/mit dem Matcher kann ich testen, ob @product.industry_products.build
und der Rest in meiner Aktion definiert werden?rspec Matcher für Build in neuer Aktion
products_controller
def new
@product = Product.new
authorize @product
@product.industry_products.build
@product.product_features.build
@product.product_usecases.build
@product.product_competitions.build
end
products_controller_spec.rb
context "GET new" do
let!(:profile) { create(:profile, user: @user) }
before(:each) do
get :new
end
it "assigns product" do
expect(assigns(:product)).to be_a_new(Product)
end
it { is_expected.to respond_with 200 }
it { is_expected.to render_template :new }
end
Anthony, ich habe diese Tests in Modell spec. Sie denken also, dass in diesem Fall nicht getestet werden muss, ob Instanzvariablen im Controller gesetzt sind? –
In diesem Fall ja. Wenn Sie testen möchten, dass sie aufgerufen werden, verwenden Sie 'expect (assigns (: project) .industry_products.size) .to eq (1)'. Oder, noch besser, stellen Sie sicher, dass die 'industry_products' Felder tatsächlich in Ihrer Form angezeigt werden. –