إصدار روبي: 2.7.2
إصدار القضبان: 6.1.0
إصدار RSpec: 3.10.1 (rspec-core) و 4.0.2 (rspec-rails)
أهلا! أحاول ترقية تطبيقي إلى Rails 6.1 من 6.0.3.4 ، وأواجه خطأً عند استخدام طريقة fixture_file_upload
. عندما أسمي هذه الطريقة ، يظهر الاستثناء التالي:
NoMethodError:
undefined method `file_fixture_path' for RSpec::Rails::FixtureFileUploadSupport::RailsFixtureFileWrapper:Class
Did you mean? fixture_path
يبدو أن ActionPack
قد غيّر تنفيذ fixture_file_upload
ويتوقع أن يكون هناك طريقة file_fixture_path
في فئة RailsFixtureFileWrapper
.
أتوقع هذه الطريقة لتحميل الملف دون إثارة أي استثناءات.
يمكنك رؤية التطبيق الخاص بي مع اختبار فاشل هنا: https://github.com/egiurleo/fixture-file-upload-test/blob/main/spec/fixture_file_upload_spec.rb
بالنسبة للاختبار ، لدي ملف pdf في المجلد spec/fixtures
. أحاول استدعاء طريقة fixture_file_upload
باسم هذا الملف ، ويثير الاختبار الاستثناء الذي وصفته سابقًا.
file_fixture_path
في هذا السياق ، لذا فإن أي توجيه سيكون موضع تقدير.ActionPack
( lib/action_dispatch/testing/test_process.rb
).شكرا على الإبلاغ. نحن نعمل بنشاط على rspec-rails
4.1 ، يمكنك الوصول إليه من خلال الإشارة إلى الفرع:
# Gemfile
gem 'rspec-rails', github: 'rspec/rspec-rails', branch: 'rails-6-1-dev'
آسف للإزعاج.
لا تتردد في الإبلاغ مرة أخرى إذا كان لا يزال لا يعمل من أجلك.
شكرا جزيلا على السماح لي أن أعرف لكم!
كحل مؤقت لهذا ، بدلاً من العبث بملف Gemfile الخاص بي والتأكد من امتلاك كل التبعيات ، قمت للتو بتعريف طريقة fixture_file_upload
الخاصة بي بعد النظر إلى الكود المصدري لتلك الطريقة:
def fixture_file_upload(path, mime_type)
Rack::Test::UploadedFile.new(Pathname.new(file_fixture_path).join(path), mime_type, false)
end
التعليق الأكثر فائدة
شكرا على الإبلاغ. نحن نعمل بنشاط على
rspec-rails
4.1 ، يمكنك الوصول إليه من خلال الإشارة إلى الفرع:تم تضمين الإصلاح هناك .
آسف للإزعاج.
لا تتردد في الإبلاغ مرة أخرى إذا كان لا يزال لا يعمل من أجلك.