Rspec-rails: rspec-rails рдХреЗ рд╕рд╛рде рдлрд┐рдХреНрд╕реНрдЪрд░_рдлрд╛рдЗрд▓_рдЕрдкрд▓реЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 6 рдЬрдире░ 2021  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: rspec/rspec-rails

рдЖрдк рдХрд┐рд╕ рд░реВрдмреА, рд░реЗрд▓ рдФрд░ рдЖрд░рдПрд╕рдкреАрд╕реА рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рд░реВрдмреА рд╕рдВрд╕реНрдХрд░рдг: 2.7.2
рд░реЗрд▓ рд╕рдВрд╕реНрдХрд░рдг: 6.1.0
рдЖрд░рдПрд╕рдкреАрд╕реА рд╕рдВрд╕реНрдХрд░рдг: 3.10.1 (рдЖрд░рдПрд╕рдкреАрд╕реА-рдХреЛрд░) рдФрд░ 4.0.2 (рдЖрд░рдПрд╕рдкреАрд╕реА-рд░реЗрд▓)

рдордирд╛рдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░

рдирдорд╕реНрдХрд╛рд░! рдореИрдВ 6.0.3.4 рд╕реЗ рдЕрдкрдиреЗ рдРрдк рдХреЛ рд░реЗрд▓ 6.1 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ fixture_file_upload рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдЖ рд░рд╣реА рд╣реИред рдЬрдм рдореИрдВ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдирд┐рдореНрди рдЕрдкрд╡рд╛рдж рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

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

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ ActionPack рдиреЗ fixture_file_upload рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рдФрд░ RailsFixtureFileWrapper рд╡рд░реНрдЧ рдкрд░ file_fixture_path рд╡рд┐рдзрд┐ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИред

рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдкрд╡рд╛рдж рдХреЗ рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░реЗрдЧреАред

рдХреНрдпрд╛ рдЖрдк рдПрдХ рдЙрджрд╛рд╣рд░рдг рдРрдк рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдЖрдк рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдРрдк рдХреЛ рдПрдХ рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдпрд╣рд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/egiurleo/fixture-file-upload-test/blob/main/spec/fixture_file_upload_spec.rb

рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ 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'

рдлрд┐рдХреНрд╕ рд╡рд╣рд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИ ред

рдЕрд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред

рдХреГрдкрдпрд╛ рдмреЗрдЭрд┐рдЭрдХ рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ рдпрджрд┐ рдпрд╣ рдЕрднреА рднреА рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╣рдо rspec-rails 4.1 рдкрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЖрдк рдПрдХ рд╢рд╛рдЦрд╛ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рдХреЗ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

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

рдлрд┐рдХреНрд╕ рд╡рд╣рд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИ ред

рдЕрд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред

рдХреГрдкрдпрд╛ рдмреЗрдЭрд┐рдЭрдХ рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ рдпрджрд┐ рдпрд╣ рдЕрднреА рднреА рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ, рдореЗрд░реЗ рдЬреЗрдордлрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдЭреБрдХрд╛рд╡ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдереАрдВ, рдореИрдВрдиреЗ рдЙрд╕ рд╡рд┐рдзрд┐ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж рдЕрдкрдиреА 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
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

alexbrinkman picture alexbrinkman  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jaredbeck picture jaredbeck  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kaka-ruto picture kaka-ruto  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

a-leung picture a-leung  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jenskutilek picture jenskutilek  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ