環境はSinatra、Nokogiri、RSpec、FactoryGirl、およびDataMapperです。RSpec&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
問題は、結果セットの型が#to_xml
方法を有するDataMapper::Collection
であることです。
DataMapper::Collection
の代わりにのスタブ付きインスタンスを使用しているため、私のスタブは明らかに機能しません。
私の質問は:
どのように私はタイプDataMapper::Collection
のものであり、DataMapperののシリアライザによって提供さ#to_xml
方法を持っている(FactoryGirl付き)インスタンスのコレクションを作成する必要がありますか?
コードはGitHubのでもご覧になれます。
私のビジョンを広げてくれてありがとう! :) –