[rspec-users] Why does this stub doesn't work?

Haim Ashkenazi haim.ashkenazi at gmail.com
Mon Oct 25 01:20:10 EDT 2010


Hi Zach,

On Oct 24, 2010, at 11:04 PM, Zach Dennis wrote:

> 
> 
> On Sun, Oct 24, 2010 at 11:21 AM, Haim Ashkenazi <haim.ashkenazi at gmail.com> wrote:
> Hi
> 
> I wonder why this stub doesn't work:
> 
> # ruby 1.8.7, rspec 2.0.1
> require 'rubygems'
> require 'rspec'
> 
> Rspec.configure do |c|
> 
>   c.mock_with :rspec
> end
> 
> class SayHello
>   def say_hello
>     "hello"
>   end
> end
> 
> describe "test string" do
>   it "should interpret stub correctly" do
>     SayHello.stub!(:say_hello).and_return('NO')
> 
>     sh = SayHello.new()
>     sh.say_hello.should eql('NO')
>   end
> end
> In your example you are stubbing a class method. In your implementation you have defined an instance method. To have this work for your given implementation you need to know about the instance you are working with, ie:
> 
> it "should interpret stub correctly" do
>     sh = SayHello.new()
>     sh.stub!(:say_hello).and_return 'NO'
>     sh.say_hello.should eql('NO')
>  end
> 
> Hope this helps,

Thanks for your help. I've found in the archives that you have to use mocha to do these kind of things. I tried a different approach (to mock the initializer) but although this works on a simple setup, it didn't work for me on my real classes. I'm probably doing something wrong so I'll upload it to github and ask this list again for help.

Thanks.

Bye

> 
> Zach
>  
> 
> 
> The result is:
> tryouts ➤ rspec -f n test_spec.rb                                              
> 
> test string
>   should interpret stub correctly (FAILED - 1)
> 
> Failures:
>   1) test string should interpret stub correctly
>      Failure/Error: sh.say_hello.should eql('NO')
>      
>      expected "NO"
>           got "hello"
>      
>      (compared using eql?)
>      # ./test_spec.rb:18
> 
> Finished in 0.0016 seconds
> 1 example, 1 failure
> Any ideas?
> Bye
> Haim Ashkenazi
> 
> 
> 
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
> 
> 
> 
> -- 
> Zach Dennis
> http://www.continuousthinking.com (personal)
> http://www.mutuallyhuman.com (hire me)
> http://ideafoundry.info/behavior-driven-development (first rate BDD training)
> @zachdennis (twitter)
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20101025/b2fbc7d7/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 194 bytes
Desc: This is a digitally signed message part
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20101025/b2fbc7d7/attachment.bin>


More information about the rspec-users mailing list