[rspec-users] How can I spec this? The method gets passed a block...
aslak hellesoy
aslak.hellesoy at gmail.com
Sat Feb 24 06:48:28 EST 2007
On 2/23/07, Pat Maddox <pergesu at gmail.com> wrote:
> I'm using Jim Weirich's Builder library. The code I want to spec is
>
> xml.video do
> xml.id @video_id
> xml.views @views
> xml.date(@date.to_s) if @date
> end
>
> I'd like to mock it, rather than asserting that the XML is the right
> string. I can do one spec:
>
> specify "should create a video tag" do
> @mock_builder.should_receive(:video)
> do_report
> end
>
> but I can't do anything else. Setting an expectation for :id, :views,
> and :date all fail. It's obvious to me why it does...the stubbed
> :video method doesn't know to execute the stuff in the block. So
> what's the best way to spec this?
>
There is no "best" way to do anything, but in this case I think I
would avoid mocking the API I don't own (builder).
I would mock the objects that builder *interacts* with, kick of
builder and expect the generated XML to eql some expected XML.
Makes sense?
> Pat
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>
More information about the rspec-users
mailing list