测试资产时出错:无法复制NilClass

时间:2011-08-01 09:29:30

标签: ruby-on-rails testing paperclip dup

我正在使用带有ruby 1.9.2的rails 3.0.9。我正在做一个允许用户将物品放入不同壁橱的系统。用户的一种可能性是将其他用户的项目复制到他自己的衣柜中(如果你不理解,请告诉我,我不善于解释事情......)。

要处理图像,我正在使用paperclip 2.3.16。我正在用Rspec-rails 2.6.1,Cucumber-rails 1.0.2测试我的应用程序。当我用guard& amp; spork在资产的副本部分,我有一个“TypeError:不能复制NilClass”。我在网上搜索答案,但没有找到任何具体和有效的工作:(。

您对这个问题有所了解吗?

我的closet_spec.rb代码(如果你需要别的东西,请告诉我):

  describe '#tidy_up' do
let!(:other_user) { Factory.create(:confirmed_user, :user_name => 'Plop', :email => 'coin@plop.fr') }
let!(:closet) { other_user.closets.first }
let!(:item) { Item.create! :type_id => 42, :closet_id => dream_dressing.id }
let!(:dressing_item) { Item.create! :type_id => 42, :closet_id => dressing.id }

before do
  path = File.join(Rails.root, "spec", "support", 'image.jpg')
  f = File.open(path)
  2.times.map do |n| 
    i = Item.new :type_id => 2#, :asset => Asset.new(picture)
    i.save!
    puts ">>>>>>>>>>>>>>>>>>>>> #{i.id}"
    i.build_asset(:picture => f)
    closet.items << i
  end
  @count = 0
end

it 'copies given items and assets to closet' do
  expect { dream_dressing.tidy_up closet.items }.to change { dream_dressing.items.count }.by 2
  expect { dream_dressing.tidy_up closet.items }.to change { dream_dressing.items.map{|i| i.asset; puts ">>>>>>>>>>>>>>>>> asset : #{i.asset} " }.length }.by 2
end

0 个答案:

没有答案