次のクラスをテストしていると仮定します。
class Processor
def initialize(tree)
@tree = tree
end
def process(entity)
@tree.each_branch do |branch|
branch.inject({}) do |result, fruit|
result[fruit.name] = fruit.type == entity.type
end
end
end
end
スタブツリーを注入したいのですが、私の仕様では次のようになります。
describe Processor do
let(:tree) { double("tree") }
let(:apple) { Fruit.new("apple") }
let(:processor) { Processor.new(tree) }
let(:fruit1) { Fruit.new("orange") }
let(:fruit2) { Fruit.new("apple") }
it "should process a fruit"
tree.stub(:each_branch).and_yield([fruit1, fruit2])
Processor.process(apple)
end
end
次のハッシュがブロック内に作成されることを期待します。正しく作成され、ブロックの呼び出し元に返されることを確認するにはどうすればよいですか?
{ "orange" => false, "apple" => true }
編集:私はFruitクラスの詳細を省略しました、それは無関係であるはずです。