Re: [rspec-users] why should_receive failure?

2009-07-14 Thread Julian Leviston

because
"Peepcode.new"
doesn't receive the "awesome" message.

like it says...

Julian.

On 15/07/2009, at 12:59 PM, Zhenning Guan wrote:



class PeepCode

 def awesome
   "awesome"
 end

end

describe PeepCode do

it "should fuck" do
  PeepCode.new.should_receive(:awesome).and_return("awesome")
end
end


-
Spec::Mocks::MockExpectationError in 'PeepCode should fuck'
# expected :awesome with (any args) once, but
received it 0 times
./simple_spec.rb:13:

Finished in 0.006159 seconds

1 example, 1 failure

--


what's wrong with my code?
--
Posted via http://www.ruby-forum.com/.
___
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users


___
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users


Re: [rspec-users] why should_receive failure?

2009-07-14 Thread David Chelimsky
On Tue, Jul 14, 2009 at 9:59 PM, Zhenning Guan wrote:
>
> class PeepCode
>  def awesome
>    "awesome"
>  end
> end
>
> describe PeepCode do
>  it "should fuck" do
>   PeepCode.new.should_receive(:awesome).and_return("awesome")
>  end
> end
>
> -
> Spec::Mocks::MockExpectationError in 'PeepCode should fuck'
> # expected :awesome with (any args) once, but
> received it 0 times
> ./simple_spec.rb:13:
>
> Finished in 0.006159 seconds
>
> 1 example, 1 failure
>
> --
>
>
> what's wrong with my code?

You asked a similar question yesterday and I tried to explain. Did you
not receive my response?

should_receive sets an expectation that a subsequent event will cause
the PeepCode object to receive the :awesome message. There is no code
after that expectation is set, so the message is never received, and
the expectation fails. That's exactly what the error message is
telling you:  expected :awesome with (any args)
once, but received it 0 times.

If you're trying to specify that the PeepCode object should return
"awesome" when you call the awesome() method, then the example should
look like this:

describe PeepCode, "#awesome" do
  it "should return 'awesome'" do
peepcode = PeepCode.new
peepcode.awesome.should == "awesome"
  end
end

There's no need to set a message expectation (e.g. mock) here.

HTH,
David

ps - I think it's OK to say "fuck" on this list, if that's what you
really mean, but I don't really understand what you're getting at with
the expectation that PeepCode should fuck. Perhaps you might consider
being a bit more careful about the examples you send.
___
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users


Re: [rspec-users] why should_receive failure?

2009-07-14 Thread Jim Gay

On Jul 14, 2009, at 10:59 PM, Zhenning Guan wrote:



class PeepCode

def awesome
  "awesome"
end

end

describe PeepCode do

it "should fuck" do

peep = PeepCode.new
peep.should_receive(:awesome).and_return("awesome")
peep.awesome #this completes the expectation above

#  PeepCode.new.should_receive(:awesome).and_return("awesome")
end
end


-
Spec::Mocks::MockExpectationError in 'PeepCode should fuck'
# expected :awesome with (any args) once, but
received it 0 times
./simple_spec.rb:13:

Finished in 0.006159 seconds

1 example, 1 failure

--


what's wrong with my code?


I think you misunderstand "should_receive". It doesn't actually call  
the method you're describing; it creates an expectation. So your spec  
says that something should happen, and then you never called the  
method, so it "received it 0 times"


This is a bad example though.

Your code seems to say that this is the spec:

describe PeepCode, "awesome" do
 it "should return the string 'awesome'" do
   PeepCode.new.awesome.should == 'awesome'
 end
end

"should_receive" says that in the test which is being run, the object  
should receive that method call... for example:


class PeepCode
 def awesome
   totally_rad
 end
 def totally_rad
   "righteous"
 end
end

and your spec:

describe PeepCode, "awesome" do
 it "should call the totally_rad method" do
   peep = PeepCode.new
   peep.should_receive(:totally_rad).and_return(...whatever...)
   peep.awesome
 end
 it "should return the string 'righteous'" do
   PeepCode.new.awesome.should == 'righteous'
 end
end

I haven't tried any of that, but it should work.


Jim Gay
http://www.saturnflyer.com
___
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users


[rspec-users] why should_receive failure?

2009-07-14 Thread Zhenning Guan

class PeepCode

  def awesome
"awesome"
  end

end

describe PeepCode do

 it "should fuck" do
   PeepCode.new.should_receive(:awesome).and_return("awesome")
 end
end


-
Spec::Mocks::MockExpectationError in 'PeepCode should fuck'
# expected :awesome with (any args) once, but
received it 0 times
./simple_spec.rb:13:

Finished in 0.006159 seconds

1 example, 1 failure

--


what's wrong with my code?
-- 
Posted via http://www.ruby-forum.com/.
___
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users