【发布时间】:2015-02-05 19:36:45
【问题描述】:
我有一个规范在单独运行时通过,但是当我将它作为测试目录或整个套件的一部分运行时,它会失败。
规格:
WebMock.disable!
describe MembersUpload::ParseSpreadsheet do
let(:client) { create(:client) }
let(:members_upload) { create(:members_upload, client: client) }
context 'parsing an uploaded spreadsheet' do
it 'should parse the spreadsheet and add rows' do
MembersUpload::ParseSpreadsheet.call(client.id, members_upload.id)
members_upload.reload
expect(members_upload.spreadsheet_rows).to be > 0
end
end
end
工厂:
FactoryGirl.define do
factory :members_upload do
association :client
ignore_duplicates false
send_welcome_letters false
spreadsheet_rows 0
total_added 0
invalid_percent 0
disallowed_percent 0
unknown_percent 0
accept_all_percent 0
invalid_violation false
disallowed_violation false
status 'scheduled'
approved false
approve_by Date.today + 14.days
approval_type 'client'
spreadsheet { fixture_file_upload "#{Rails.root}/spec/fixtures/member_uploads/members-uploads-samples-good.csv", 'text/csv' }
end
end
当作为一个套件或一组测试的一部分运行时,我收到以下错误:NoMethodError: undefined method body for nil:NilClass
错误本身指向名为copy_to_local_file 的fog 方法,似乎表明它无法加载文件/文件的内容。
我觉得我必须遗漏一些明显的东西,为什么这个测试会自行通过,而不是作为套件/组的一部分。
我是 Rspec 的新手,因为它涉及/处理上传的文件,并且不知道从哪里开始(我已经用谷歌搜索过,但发现很少)。
【问题讨论】:
标签: ruby-on-rails rspec fog