1

CSV から商品をインポートするアクションをテストしようとしています。

一次試験に合格できるようになりました。は、テストが失敗しないparams[:file]文字列としてコントローラーに送られますが、正しい動作ではありません。"#<StringIO:0x007fc0d40a0bd0>"

次のエラーが表示される 2 番目のテスト

private method `gets' called for  #<ActionDispatch::Http::UploadedFile:0x007fd391de0a00>

これが私の仕様です(コンテンツはCSVコンテンツです)

  # spec/controllers/products_controller_spec.rb

  describe 'POST import with file' do
    before do
      post :import, file: file
    end

    context 'with invalid data' do
      subject { Spree::Product.count }
      let(:file) { StringIO.new("") }
      it { is_expected.to eq 0 }
    end

    context 'with valid data' do
      subject { Spree::Product.count }
      let(:file) { ActionDispatch::Http::UploadedFile.new(params) }

      let(:params) do
        {
          original_filename: 'file.csv',
          content_type: 'text/csv',
          tempfile: StringIO.new(content)
        }
      end

      it { is_expected.to eq 1 }
    end
  end
4

1 に答える 1