Средой является Синатра, Нокогири, 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: