λ£¨λΉ λ²μ : 2.7.2
λ μΌμ¦ λ²μ : 6.1.0
RSpec λ²μ : 3.10.1(rspec-core) λ° 4.0.2(rspec-rails)
μ¬λ³΄μΈμ! μ±μ 6.0.3.4μμ Rails 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
ν΄λμ pdf νμΌμ΄ μμ΅λλ€. ν΄λΉ νμΌμ μ΄λ¦μΌλ‘ 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μ λν΄ μ κ·Ήμ μΌλ‘ μμ νκ³ μμ΅λλ€. λΆκΈ°λ₯Ό κ°λ¦¬ν€λ©΄ μ‘μΈμ€ν μ μμ΅λλ€.μμ μ¬ν μ΄ ν¬ν¨λμ΄ μμ΅λλ€ .
λΆνΈμ λλ € μ£μ‘ν©λλ€.
κ·Έλλ λ¬Έμ κ° ν΄κ²°λμ§ μμΌλ©΄ μΈμ λ μ§ λ€μ λ³΄κ³ ν΄ μ£Όμμμ€.