环境是 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
.
我的问题是:
我应该如何创建一个实例集合(使用 FactoryGirl),这些实例的类型DataMapper::Collection
和#to_xml
方法由 DataMapper 的序列化程序提供?
代码也可以在 Github 上找到: