【发布时间】:2010-12-08 11:32:49
【问题描述】:
环境是 Sinatra、Nokogiri、RSpec、FactoryGirl 和 DataMapper。
问题出在 DataMapper 的序列化程序上。我不知道如何恰当地使用它。
有问题的代码:
specify 'should return an xml array of all municipalities' do
municipalities = []
10.times { |n| municipalities << Factory.build(:municipality, :code => "Municipality no #{n}") }
Municipality.stub!(:all).and_return(municipalities)
get "/municipalities.xml"
# ^------- KABOOM!
# [.. rest of code clipped out ..]
end
get 调用的代码实际上等同于:
Municipality.all.to_xml
问题在于结果集的类型是DataMapper::Collection,它具有#to_xml 方法。
我的存根显然不起作用,因为我使用的是存根实例的Array,而不是DataMapper::Collection。
我的问题是:
我应该如何创建类型为DataMapper::Collection 并具有DataMapper 的序列化程序提供的#to_xml 方法的实例集合(使用FactoryGirl)?
代码也可以在 Github 上找到:
【问题讨论】:
标签: xml-serialization rspec datamapper factory-bot stub