Hello, I haven''t been able to create a controller spec. You can see the code here: http://pastie.caboo.se/67980 The error message I''m getting is: Spec::Mocks::MockExpectationError in ''PersonController should tell the Person model to create a new person on POST to create'' Mock ''person'' received unexpected message :save with (no args) /home/gramos/src/rails/dental/config/../app/controllers/person_controller.rb:26:in `create'' ./spec/controllers/person_controller_spec.rb I can''t find what I am doing wrong. I would appreciate any help. thanks in advance. -- Gast?n Ramos "I always thought Smalltalk would beat Java, I just didn''t know it would be called ''Ruby'' when it did." -- Kent Beck
On 6/5/07, Gaston Ramos <gramos at rectorado.unl.edu.ar> wrote:> Hello, > > I haven''t been able to create a controller spec. > You can see the code here: > > http://pastie.caboo.se/67980Instead of this: Person.stub!(:save).and_return( @person ) do this: person.stub!(:save).and_return(true) Please let us know if that fixes it.> > The error message I''m getting is: > > Spec::Mocks::MockExpectationError in ''PersonController should tell the Person > model to create a new person on POST to create'' > Mock ''person'' received unexpected message :save with (no args) > /home/gramos/src/rails/dental/config/../app/controllers/person_controller.rb:26:in > `create'' > ./spec/controllers/person_controller_spec.rb > > I can''t find what I am doing wrong. > > I would appreciate any help. thanks in advance. > > > -- > Gast?n Ramos > > "I always thought Smalltalk would beat Java, I just didn''t know it would be > called ''Ruby'' when it did." > -- Kent Beck > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
El mar, 05 de jun de 2007, a las 10:59:15 -0500, David Chelimsky dijo:> On 6/5/07, Gaston Ramos <gramos at rectorado.unl.edu.ar> wrote: > > Hello, > > > > I haven''t been able to create a controller spec. > > You can see the code here: > > > > http://pastie.caboo.se/67980 > > Instead of this: > > Person.stub!(:save).and_return( @person ) > > do this: > > person.stub!(:save).and_return(true) > > Please let us know if that fixes it.I tried that way and it did''nt work> > > > > The error message I''m getting is: > > > > Spec::Mocks::MockExpectationError in ''PersonController should tell the Person > > model to create a new person on POST to create'' > > Mock ''person'' received unexpected message :save with (no args) > > /home/gramos/src/rails/dental/config/../app/controllers/person_controller.rb:26:in > > `create'' > > ./spec/controllers/person_controller_spec.rb > > > > I can''t find what I am doing wrong. > > > > I would appreciate any help. thanks in advance. > > > > > > -- > > Gast?n Ramos > > > > "I always thought Smalltalk would beat Java, I just didn''t know it would be > > called ''Ruby'' when it did." > > -- Kent Beck > > _______________________________________________ > > rspec-users mailing list > > rspec-users at rubyforge.org > > http://rubyforge.org/mailman/listinfo/rspec-users > > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >-- Gast?n Ramos "I always thought Smalltalk would beat Java, I just didn''t know it would be called ''Ruby'' when it did." -- Kent Beck
On 6/5/07, Gaston Ramos <gramos at rectorado.unl.edu.ar> wrote:> El mar, 05 de jun de 2007, a las 10:59:15 -0500, David Chelimsky dijo: > > On 6/5/07, Gaston Ramos <gramos at rectorado.unl.edu.ar> wrote: > > > Hello, > > > > > > I haven''t been able to create a controller spec. > > > You can see the code here: > > > > > > http://pastie.caboo.se/67980 > > > > Instead of this: > > > > Person.stub!(:save).and_return( @person ) > > > > do this: > > > > person.stub!(:save).and_return(true) > > > > Please let us know if that fixes it. > > I tried that way and it did''nt work"it didn''t work" doesn''t help us to help you. How didn''t it work? What was the error this time? Can you post the controller code in addition to the rspec example?> > > > > > > > > The error message I''m getting is: > > > > > > Spec::Mocks::MockExpectationError in ''PersonController should tell the Person > > > model to create a new person on POST to create'' > > > Mock ''person'' received unexpected message :save with (no args) > > > /home/gramos/src/rails/dental/config/../app/controllers/person_controller.rb:26:in > > > `create'' > > > ./spec/controllers/person_controller_spec.rb > > > > > > I can''t find what I am doing wrong. > > > > > > I would appreciate any help. thanks in advance. > > > > > > > > > -- > > > Gast?n Ramos > > > > > > "I always thought Smalltalk would beat Java, I just didn''t know it would be > > > called ''Ruby'' when it did." > > > -- Kent Beck > > > _______________________________________________ > > > rspec-users mailing list > > > rspec-users at rubyforge.org > > > http://rubyforge.org/mailman/listinfo/rspec-users > > > > > _______________________________________________ > > rspec-users mailing list > > rspec-users at rubyforge.org > > http://rubyforge.org/mailman/listinfo/rspec-users > > > > -- > Gast?n Ramos > > "I always thought Smalltalk would beat Java, I just didn''t know it would be > called ''Ruby'' when it did." > -- Kent Beck > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
El mar, 05 de jun de 2007, a las 12:00:11 -0500, David Chelimsky dijo:> On 6/5/07, Gaston Ramos <gramos at rectorado.unl.edu.ar> wrote: > > El mar, 05 de jun de 2007, a las 10:59:15 -0500, David Chelimsky dijo: > > > On 6/5/07, Gaston Ramos <gramos at rectorado.unl.edu.ar> wrote: > > > > Hello, > > > > > > > > I haven''t been able to create a controller spec. > > > > You can see the code here: > > > > > > > > http://pastie.caboo.se/67980 > > > > > > Instead of this: > > > > > > Person.stub!(:save).and_return( @person ) > > > > > > do this: > > > > > > person.stub!(:save).and_return(true) > > > > > > Please let us know if that fixes it. > > > > I tried that way and it did''nt work > > "it didn''t work" doesn''t help us to help you. How didn''t it work? What > was the error this time? Can you post the controller code in addition > to the rspec example?you can see the person_controller_spec code: http://pastie.caboo.se/67993 and the person_controller code: http://pastie.caboo.se/67994 when I run: rake spec:controllers I get this error: DEPRECATION WARNING: model is deprecated and will be removed from Rails 2.0 See http://www.rubyonrails.org/deprecation for details. (called from /home/gramos/src/rails/dental/config/../app/controllers/application.rb:10) DEPRECATION WARNING: depend_on is deprecated and will be removed from Rails 2.0 See http://www.rubyonrails.org/deprecation for details. (called from model_without_deprecation at /usr/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/deprecated_dependencies.rb:13) ...F 1) Spec::Mocks::MockExpectationError in ''PersonController should tell the Person model to create a new person on POST to create'' Mock ''person'' received unexpected message :save with (no args) /home/gramos/src/rails/dental/config/../app/controllers/person_controller.rb:26:in `create'' ./spec/controllers/person_controller_spec.rb:47: Finished in 0.142998 seconds 4 examples, 1 failure> > > > > > > > > > > > > > > The error message I''m getting is: > > > > > > > > Spec::Mocks::MockExpectationError in ''PersonController should tell the Person > > > > model to create a new person on POST to create'' > > > > Mock ''person'' received unexpected message :save with (no args) > > > > /home/gramos/src/rails/dental/config/../app/controllers/person_controller.rb:26:in > > > > `create'' > > > > ./spec/controllers/person_controller_spec.rb > > > > > > > > I can''t find what I am doing wrong. > > > > > > > > I would appreciate any help. thanks in advance. > > > > > > > > > > > > -- > > > > Gast?n Ramos > > > > > > > > "I always thought Smalltalk would beat Java, I just didn''t know it would be > > > > called ''Ruby'' when it did." > > > > -- Kent Beck > > > > _______________________________________________ > > > > rspec-users mailing list > > > > rspec-users at rubyforge.org > > > > http://rubyforge.org/mailman/listinfo/rspec-users > > > > > > > _______________________________________________ > > > rspec-users mailing list > > > rspec-users at rubyforge.org > > > http://rubyforge.org/mailman/listinfo/rspec-users > > > > > > > -- > > Gast?n Ramos > > > > "I always thought Smalltalk would beat Java, I just didn''t know it would be > > called ''Ruby'' when it did." > > -- Kent Beck > > _______________________________________________ > > rspec-users mailing list > > rspec-users at rubyforge.org > > http://rubyforge.org/mailman/listinfo/rspec-users > > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >-- Gast?n Ramos "I always thought Smalltalk would beat Java, I just didn''t know it would be called ''Ruby'' when it did." -- Kent Beck
On 6/5/07, Gaston Ramos <gramos at rectorado.unl.edu.ar> wrote:> El mar, 05 de jun de 2007, a las 12:00:11 -0500, David Chelimsky dijo: > > On 6/5/07, Gaston Ramos <gramos at rectorado.unl.edu.ar> wrote: > > > El mar, 05 de jun de 2007, a las 10:59:15 -0500, David Chelimsky dijo: > > > > On 6/5/07, Gaston Ramos <gramos at rectorado.unl.edu.ar> wrote: > > > > > Hello, > > > > > > > > > > I haven''t been able to create a controller spec. > > > > > You can see the code here: > > > > > > > > > > http://pastie.caboo.se/67980 > > > > > > > > Instead of this: > > > > > > > > Person.stub!(:save).and_return( @person ) > > > > > > > > do this: > > > > > > > > person.stub!(:save).and_return(true) > > > > > > > > Please let us know if that fixes it. > > > > > > I tried that way and it did''nt work > > > > "it didn''t work" doesn''t help us to help you. How didn''t it work? What > > was the error this time? Can you post the controller code in addition > > to the rspec example? > > you can see the person_controller_spec code: > > http://pastie.caboo.se/67993 > > and the person_controller code: > > http://pastie.caboo.se/67994 > > when I run: > rake spec:controllers > > I get this error: > > DEPRECATION WARNING: model is deprecated and will be removed from Rails 2.0 See > http://www.rubyonrails.org/deprecation for details. (called from > /home/gramos/src/rails/dental/config/../app/controllers/application.rb:10) > DEPRECATION WARNING: depend_on is deprecated and will be removed from Rails 2.0 > See http://www.rubyonrails.org/deprecation for details. (called from > model_without_deprecation at > /usr/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/deprecated_dependencies.rb:13) > ...F > > 1) > Spec::Mocks::MockExpectationError in ''PersonController should tell the Person > model to create a new person on POST to create'' > Mock ''person'' received unexpected message :save with (no args) > /home/gramos/src/rails/dental/config/../app/controllers/person_controller.rb:26:in > `create'' > ./spec/controllers/person_controller_spec.rb:47: > > Finished in 0.142998 seconds > > 4 examples, 1 failureThe stuff being mocked in the example is not the same as the stuff happening in the controller. The first problem is the one I brought up earlier. That''s what is causing the specific error you are getting because you''re mocking :save on the Person class, but sending :save to the @person instance in the controller. Also, there is no need for @person.should_receive(:new_record?).and_return(false) - that''s not getting called. Lastly, the controller is calling Person.new, but the example is mocking Person.create. I think this should work: http://pastie.caboo.se/67998 Give it a shot.> > > > > > > > > > > > > > > > > > > > > > > The error message I''m getting is: > > > > > > > > > > Spec::Mocks::MockExpectationError in ''PersonController should tell the Person > > > > > model to create a new person on POST to create'' > > > > > Mock ''person'' received unexpected message :save with (no args) > > > > > /home/gramos/src/rails/dental/config/../app/controllers/person_controller.rb:26:in > > > > > `create'' > > > > > ./spec/controllers/person_controller_spec.rb > > > > > > > > > > I can''t find what I am doing wrong. > > > > > > > > > > I would appreciate any help. thanks in advance. > > > > > > > > > > > > > > > -- > > > > > Gast?n Ramos > > > > > > > > > > "I always thought Smalltalk would beat Java, I just didn''t know it would be > > > > > called ''Ruby'' when it did." > > > > > -- Kent Beck > > > > > _______________________________________________ > > > > > rspec-users mailing list > > > > > rspec-users at rubyforge.org > > > > > http://rubyforge.org/mailman/listinfo/rspec-users > > > > > > > > > _______________________________________________ > > > > rspec-users mailing list > > > > rspec-users at rubyforge.org > > > > http://rubyforge.org/mailman/listinfo/rspec-users > > > > > > > > > > -- > > > Gast?n Ramos > > > > > > "I always thought Smalltalk would beat Java, I just didn''t know it would be > > > called ''Ruby'' when it did." > > > -- Kent Beck > > > _______________________________________________ > > > rspec-users mailing list > > > rspec-users at rubyforge.org > > > http://rubyforge.org/mailman/listinfo/rspec-users > > > > > _______________________________________________ > > rspec-users mailing list > > rspec-users at rubyforge.org > > http://rubyforge.org/mailman/listinfo/rspec-users > > > > -- > Gast?n Ramos > > "I always thought Smalltalk would beat Java, I just didn''t know it would be > called ''Ruby'' when it did." > -- Kent Beck > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
El mar, 05 de jun de 2007, a las 12:22:37 -0500, David Chelimsky dijo:> On 6/5/07, Gaston Ramos <gramos at rectorado.unl.edu.ar> wrote: > > El mar, 05 de jun de 2007, a las 12:00:11 -0500, David Chelimsky dijo: > > > On 6/5/07, Gaston Ramos <gramos at rectorado.unl.edu.ar> wrote: > > > > El mar, 05 de jun de 2007, a las 10:59:15 -0500, David Chelimsky dijo: > > > > > On 6/5/07, Gaston Ramos <gramos at rectorado.unl.edu.ar> wrote: > > > > > > Hello, > > > > > > > > > > > > I haven''t been able to create a controller spec. > > > > > > You can see the code here: > > > > > > > > > > > > http://pastie.caboo.se/67980 > > > > > > > > > > Instead of this: > > > > > > > > > > Person.stub!(:save).and_return( @person ) > > > > > > > > > > do this: > > > > > > > > > > person.stub!(:save).and_return(true) > > > > > > > > > > Please let us know if that fixes it. > > > > > > > > I tried that way and it did''nt work > > > > > > "it didn''t work" doesn''t help us to help you. How didn''t it work? What > > > was the error this time? Can you post the controller code in addition > > > to the rspec example? > > > > you can see the person_controller_spec code: > > > > http://pastie.caboo.se/67993 > > > > and the person_controller code: > > > > http://pastie.caboo.se/67994 > > > > when I run: > > rake spec:controllers > > > > I get this error: > > > > DEPRECATION WARNING: model is deprecated and will be removed from Rails 2.0 See > > http://www.rubyonrails.org/deprecation for details. (called from > > /home/gramos/src/rails/dental/config/../app/controllers/application.rb:10) > > DEPRECATION WARNING: depend_on is deprecated and will be removed from Rails 2.0 > > See http://www.rubyonrails.org/deprecation for details. (called from > > model_without_deprecation at > > /usr/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/deprecated_dependencies.rb:13) > > ...F > > > > 1) > > Spec::Mocks::MockExpectationError in ''PersonController should tell the Person > > model to create a new person on POST to create'' > > Mock ''person'' received unexpected message :save with (no args) > > /home/gramos/src/rails/dental/config/../app/controllers/person_controller.rb:26:in > > `create'' > > ./spec/controllers/person_controller_spec.rb:47: > > > > Finished in 0.142998 seconds > > > > 4 examples, 1 failure > > The stuff being mocked in the example is not the same as the stuff > happening in the controller. The first problem is the one I brought up > earlier. That''s what is causing the specific error you are getting > because you''re mocking :save on the Person class, but sending :save to > the @person instance in the controller. > > Also, there is no need for > @person.should_receive(:new_record?).and_return(false) - that''s not > getting called. > > Lastly, the controller is calling Person.new, but the example is > mocking Person.create. > > I think this should work: > > http://pastie.caboo.se/67998 > > Give it a shot.Thanks, now is working!> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > The error message I''m getting is: > > > > > > > > > > > > Spec::Mocks::MockExpectationError in ''PersonController should tell the Person > > > > > > model to create a new person on POST to create'' > > > > > > Mock ''person'' received unexpected message :save with (no args) > > > > > > /home/gramos/src/rails/dental/config/../app/controllers/person_controller.rb:26:in > > > > > > `create'' > > > > > > ./spec/controllers/person_controller_spec.rb > > > > > > > > > > > > I can''t find what I am doing wrong. > > > > > > > > > > > > I would appreciate any help. thanks in advance. > > > > > > > > > > > > > > > > > > -- > > > > > > Gast?n Ramos > > > > > > > > > > > > "I always thought Smalltalk would beat Java, I just didn''t know it would be > > > > > > called ''Ruby'' when it did." > > > > > > -- Kent Beck > > > > > > _______________________________________________ > > > > > > rspec-users mailing list > > > > > > rspec-users at rubyforge.org > > > > > > http://rubyforge.org/mailman/listinfo/rspec-users > > > > > > > > > > > _______________________________________________ > > > > > rspec-users mailing list > > > > > rspec-users at rubyforge.org > > > > > http://rubyforge.org/mailman/listinfo/rspec-users > > > > > > > > > > > > > -- > > > > Gast?n Ramos > > > > > > > > "I always thought Smalltalk would beat Java, I just didn''t know it would be > > > > called ''Ruby'' when it did." > > > > -- Kent Beck > > > > _______________________________________________ > > > > rspec-users mailing list > > > > rspec-users at rubyforge.org > > > > http://rubyforge.org/mailman/listinfo/rspec-users > > > > > > > _______________________________________________ > > > rspec-users mailing list > > > rspec-users at rubyforge.org > > > http://rubyforge.org/mailman/listinfo/rspec-users > > > > > > > -- > > Gast?n Ramos > > > > "I always thought Smalltalk would beat Java, I just didn''t know it would be > > called ''Ruby'' when it did." > > -- Kent Beck > > _______________________________________________ > > rspec-users mailing list > > rspec-users at rubyforge.org > > http://rubyforge.org/mailman/listinfo/rspec-users > > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >-- Gast?n Ramos "I always thought Smalltalk would beat Java, I just didn''t know it would be called ''Ruby'' when it did." -- Kent Beck