0
내가 내 Report
모델이 사양/비품에서 파일을 저장하지 않습니다RSpec에 : Carrierwave는
class Report < ActiveRecord::Base
belongs_to :user
attr_accessible :ready_status, :document
mount_uploader :document, DocumentUploader
def attach(report_file)
self.update_attributes(:document => File.open(report_file), :ready_status => true)
end
end
이 모델은 내가 문서 및 기타 PARAM을 저장하는 데 사용 attach
metod을 가지고 있습니다. 이제이 함수가 작동하는지 테스트하고 싶습니다.
/spec/models/report_spec.rb 내가 /spec/files
에서 파일을 저장하려고하면
# encoding: utf-8
require 'spec_helper'
describe Report do
before(:each) do
@user = User.make!
end
...
context "File's saving" do
before(:each) do
@report = @user.reports.create
@csv_report_file = "#{Rails.root}/spec/files/report.csv"
end
it "CSV should be saved" do
csv_report_filename = @csv_report_file.split("/").last
@report.attach @csv_report_file
@report.reload
@report.document.file.filename.should == csv_report_filename
end
end
end
내가 같은 오류 얻을 :
Report File's saving CSV should be saved
Failure/Error: @report.document.file.filename.should == csv_report_filename
NoMethodError:
undefined method `filename' for nil:NilClass
을하지만 난 다른 폴더에서 다른 파일을하려고 할 때 (예 : "#{Rails.root}/samples/my-report.csv"
) 내 테스트가 통과합니다.
어떻게 해결할 수 있습니까?