Среда — 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: