1

私は自分のプロジェクトroo gemに持っていて、Roo::Excel.new(path). .xls次に、ファイルをアップロードするメソッドの仕様テストを書きたいと思います。

ファイルを作成しようとしています:

@file_xls = [fixture_file_upload('/files/example.xls', 'application/vnd.ms-excel')]

これはうまくいきます。

post :method, :files => @file_xls

これは機能しません。次のエラーが表示されます。

「/var/folders/wG/wG0fTE+uEMGRa8nEqor1tU+++TI/-Tmp-/file_xls.xls20130527-497-nsnxs は Excel ファイルではありません」、行「Roo::Excel.new(path)」。

なんで?

4

2 に答える 2

2

これは少し古いトピックであることは知っていますが、同じ問題に遭遇しました。問題は、最後fixture_file_uploadに のインスタンスを作成することであり、開発または運用でアプリを使用するときに作成される とはRack::Test::UploadedFile少し異なると思います。ActionDispatch::Http::UploadedFile

とにかく、私の場合、このように使用すると問題は解決します:Roo::Spreadsheet.open file.path, extension: :xlsxの代わりに: Roo::Excelx.new file.path

単純な .xls についても同様です。

于 2015-09-22T22:16:36.403 に答える