Rspec-rails: Menggunakan fixture_file_upload dengan rspec-rails

Dibuat pada 6 Jan 2021  ·  3Komentar  ·  Sumber: rspec/rspec-rails

Versi Ruby, Rails, dan RSpec apa yang Anda gunakan?

Versi Ruby: 2.7.2
Versi rel: 6.1.0
Versi RSpec: 3.10.1 (rspec-core) dan 4.0.2 (rspec-rails)

Perilaku yang diamati

Halo! Saya mencoba memutakhirkan aplikasi saya ke Rails 6.1 dari 6.0.3.4, dan saya mengalami kesalahan saat menggunakan metode fixture_file_upload . Ketika saya memanggil metode ini, pengecualian berikut muncul:

     NoMethodError:
       undefined method `file_fixture_path' for RSpec::Rails::FixtureFileUploadSupport::RailsFixtureFileWrapper:Class
       Did you mean?  fixture_path

Tampaknya ActionPack telah mengubah implementasi fixture_file_upload dan mengharapkan ada metode file_fixture_path pada kelas RailsFixtureFileWrapper .

Perilaku yang diharapkan

Saya berharap metode ini mengunggah file tanpa memunculkan pengecualian apa pun.

Bisakah Anda memberikan contoh aplikasi?

Anda dapat melihat aplikasi contoh saya dengan tes yang gagal di sini: https://github.com/egiurleo/fixture-file-upload-test/blob/main/spec/fixture_file_upload_spec.rb

Untuk pengujian, saya memiliki file pdf di folder spec/fixtures . Saya mencoba memanggil metode fixture_file_upload dengan nama file itu, dan pengujian memunculkan pengecualian yang saya jelaskan sebelumnya.

Catatan

  • Saya mungkin salah menggunakan metode ini, tetapi saya tidak dapat menemukan dokumentasi yang menjelaskan cara menyetel file_fixture_path dalam konteks ini sehingga panduan apa pun akan dihargai.
  • Perubahan sebenarnya ada di ActionPack ( lib/action_dispatch/testing/test_process.rb ).
  • Terima kasih atas waktu Anda!

Komentar yang paling membantu

Terima kasih telah melaporkan. Kami sedang aktif mengerjakan rspec-rails 4.1, Anda dapat mengaksesnya dengan menunjuk ke cabang:

# Gemfile
gem 'rspec-rails', github: 'rspec/rspec-rails', branch: 'rails-6-1-dev'

Perbaikan disertakan di sana .

Maaf untuk ketidaknyamanannya.

Silakan laporkan kembali jika masih tidak berhasil untuk Anda.

Semua 3 komentar

Terima kasih telah melaporkan. Kami sedang aktif mengerjakan rspec-rails 4.1, Anda dapat mengaksesnya dengan menunjuk ke cabang:

# Gemfile
gem 'rspec-rails', github: 'rspec/rspec-rails', branch: 'rails-6-1-dev'

Perbaikan disertakan di sana .

Maaf untuk ketidaknyamanannya.

Silakan laporkan kembali jika masih tidak berhasil untuk Anda.

Terima kasih banyak telah memberi tahu saya!

Sebagai solusi sementara untuk ini, daripada mengutak-atik Gemfile saya dan memastikan saya memiliki semua dependensi, saya baru saja mendefinisikan metode fixture_file_upload saya sendiri setelah melihat kode sumber untuk metode itu:

def fixture_file_upload(path, mime_type)
  Rack::Test::UploadedFile.new(Pathname.new(file_fixture_path).join(path), mime_type, false)
end
Apakah halaman ini membantu?
0 / 5 - 0 peringkat