我有一個規範,當它自己運行時通過,但是,當我運行它作爲測試目錄或我的整個套件的一部分,它失敗。Rspec,回形針和導軌 - 規格與fixture_file_upload作爲單一的,不在組
規格:
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
錯誤本身指向到fog方法copy_to_local_file
,似乎表明它無法加載文件/文件的內容。
我感覺好像我一定錯過了一些顯而易見的事情,爲什麼這個測試會自行傳遞,而不是套件/組的一部分。
我是Rspec的新手,因爲它涉及到/處理上傳的文件,並且難以理解從哪裏開始(我已經使用了Google,但發現很少)。
謝謝,@geemus。我必須現在就出發,但今晚會嘗試並報告。我很欣賞反饋! – 2015-03-17 21:04:46
可以肯定的是,霧測試的方式需要一點時間才能適應,但是一旦人們習慣它,通常似乎工作得很好。所以希望這也是你的經驗。當你回到這裏時,如果你有更多的問題或疑慮,請告訴我。 – geemus 2015-03-18 16:16:46
再次感謝@geemus併爲延誤道歉......工作進展順利!)。我現在必須對我的整體設置有些不安,因爲當我添加'Fog.mock = true'時,我總是收到上述錯誤。我想我可能需要把這個嚇人的套房分開,然後從那裏開始...... – 2015-03-23 14:26:39