On 20 Oct 2009, at 17:36, Carl Graff wrote:
Is it possible to create a stub that returns hash values.
For example I would like to convert this:
@siteItem = stub('plmSiteItem', :one => "uno")
To something like this:
@siteItem = stub('plmSiteItem', {'one' => 'uno', 'two' => 'dos'} )
So that I can do this:
@siteItem['one'] should == 'uno'
@siteItem['two'] should == 'dos'
Hi Carl
In Ruby, code like my_object["foo"] is implemented with the method []
eg:
class Thing
def [](key)
# ...
end
end
So in RSpec you have to stub :[] like this:
describe "stub hash" do
it "quacks like a hash" do
stub_hash = stub("hash")
stub_hash.stub(:[]).with("one").and_return("uno")
stub_hash.stub(:[]).with("two").and_return("dos")
stub_hash["one"].should == "uno"
stub_hash["two"].should == "dos"
end
end
Actually I first tried to use method double instead of stub - even
though I still don't know when each is preferred - but double raised
a missing method error for some reason.
Can you post your code?
HTH
Ashley
--
http://www.patchspace.co.uk/
http://www.linkedin.com/in/ashleymoran
http://aviewfromafar.net/
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users