2012-12-09 103 views
1

我正在使用RSpec(Rails 3.2)來測試我的控制器。我有一個控制器,該控制器還包含(使用CarrierWave)一個FileUpload,但我不斷收到錯誤:Rails testing fileupload接收錯誤「File not found」

Failure/Error: "image" => fixture_file_upload(Rails.root.join('spec', 'fixtures', 'files', 'image.png'), 'image/png') RuntimeError: .../spec/fixtures/files/image.png file does not exist

在我的控制器中我已經定義了上傳圖片是這樣的:

def valid_attributes 
{ "title" => "My own title", 
    "description" => "Something cool", 
    "image" => fixture_file_upload(Rails.root.join('spec', 'fixtures', 'files', 'image.png'), 'image/png') 
} 

我當然已經檢查過這個文件存在,但是可能還有別的東西我忽略了?

回答

4

看來你已經對Rails 3.2使用Rack::Test::UploadedFile.new而非fixture_file_upload

def valid_attributes 
    { "title" => "My own title", 
    "description" => "Something cool", 
    "image" => Rack::Test::UploadedFile.new(Rails.root.join('spec', 'fixtures', 'files', 'image.png'), 'image/png') 
    } 
end 

見這太問題/回答:fixture_file_upload has {file} does not exist error

+0

更新我的答案。 –

+0

感謝它的工作! – Dofs

相關問題