Testing initialize methods and chained methods

I’m having some troubles understanding how to test a couple of things.
Usually, if I’m having trouble testing something, it means that my
design
could probably be improved or changed, but in these cases I think I’m
doing
the right thing.

Here’s the first scenario:

class Foo
def initialize
do_something
end
end

Here I have no idea how to test that the do_something method is called.

Another issue I have is with the following code:

my_method.another_chained_method.something_else

Here I’m having trouble understanding how to test that my_method
receives
another_chained_method and so on.

Any help would be very appreciated. Thanks!

On Oct 19, 3:56am, Oscar Del B. [email protected] wrote:

end

Any help would be very appreciated. Thanks!


rspec-users mailing list
[email protected]://rubyforge.org/mailman/listinfo/rspec-users

How does the initialize method usually get called? By call “.new” on
the class.

Here is some docs on your new friend “stub_chain”
http://relishapp.com/rspec/rspec-mocks/v/2-0/dir/stubs/stub-a-chain-of-methods

I’m in a hurry, sorry I can’t help more than that.

Set an expectation that do_something should be called once. Then create
a
new Foo.

With the method chain set an expectation that your chained method should
be
called, then call the original method. You should be able to check that
the
original method is passed as a param.

Further information in RSpec book which has some gr8 stuff on
expectations

HTH

Andrew

On Oct 19, 2010, at 12:56 AM, Oscar Del B. wrote:

Here I have no idea how to test that the do_something method is called.
What are the post-conditions of do_something? Check for those.

Pat

On Oct 19, 2010, at 2:04 PM, Pat M. wrote:

end

Here I have no idea how to test that the do_something method is called.

What are the post-conditions of do_something? Check for those.

Think “outcomes” as opposed to “post-conditions”, which means something
very specific (and subtly different) in the context of Design by
Contract.

Thanks for all the replies and the help.

On Tue, Oct 19, 2010 at 9:08 PM, David C.
[email protected]wrote:

Think “outcomes” as opposed to “post-conditions”, which means something
very specific (and subtly different) in the context of Design by Contract.


rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users


Oscar Del B.

http://oscardelben.com

http://twitter.com/oscardelben