1
これは私のcarts_controller.rbです。["text/html"]と["application/javascript"]の置換request.formatsの置換
:デフォルトのコントローラのアクションの追加が add.js.erb //アプリ/ビュー/カート内class CartsController < ApplicationController
def add
find_cart_and_product
@cart.products << @product
CartMailer.product_added(@product).deliver_now
end
end
レンダリングし、私のテスト
describe 'POST #add' do
let(:cart_full_of){ create(:cart_with_products) }
let(:product){ create(:product) }
before do
post :add, session: { cart_id: cart_full_of.id }, params: { product_id: product.id}
end
it { expect(response.status).to eq(200) }
it { expect(response.headers["Content-Type"]).to eql("application/javascript"; charset=utf-8")}
it { is_expected.to render_template :add }
it 'should add current product into cart' do
expect(cart_full_of.products).to eq([product])
end
end
は、すべての試験項目に共通のエラーで失敗したことにより、
Failure/Error: post :add, session: { cart_id: cart_full_of.id }, params: { product_id: product.id}
ActionController::UnknownFormat:
CartsController#add is missing a template for this request format and variant.
request.formats: ["text/html"]
request.variant: []
期待されるリクエスト形式に問題があると思うので、テストを強制するにはrequest.formats:["text/html"]の代わりに["application/javascript"]ですか?