Hello all, Is there a way to explicitly tell a mock to expect no messages and give an error if it does? I believe this is the default behavior, but thought it might be nice for code readers to see. Thank you! -- Posted via http://www.ruby-forum.com/.
On Wed, Jun 3, 2009 at 12:46 PM, Sebastian W. <lists at ruby-forum.com> wrote:> Hello all, > Is there a way to explicitly tell a mock to expect no messages and give > an error if it does? I believe this is the default behavior, but thought > it might be nice for code readers to see.You can tell it to expect not to receive a specific message, but there is no way to say that it should not receive any messages. Cheers, David> > Thank you!
David Chelimsky wrote:> On Wed, Jun 3, 2009 at 12:46 PM, Sebastian W. <lists at ruby-forum.com> > wrote: >> Hello all, >> Is there a way to explicitly tell a mock to expect no messages and give >> an error if it does? I believe this is the default behavior, but thought >> it might be nice for code readers to see. > > You can tell it to expect not to receive a specific message, but there > is no way to say that it should not receive any messages. > > Cheers, > DavidOkay, cool - feature request? : ) -- Posted via http://www.ruby-forum.com/.
On Wed, Jun 3, 2009 at 2:01 PM, David Chelimsky <dchelimsky at gmail.com> wrote:> On Wed, Jun 3, 2009 at 12:46 PM, Sebastian W. <lists at ruby-forum.com> wrote: >> Hello all, >> Is there a way to explicitly tell a mock to expect no messages and give >> an error if it does? I believe this is the default behavior, but thought >> it might be nice for code readers to see. > > You can tell it to expect not to receive a specific message, but there > is no way to say that it should not receive any messages.Maybe not explicitly but doesn''t isn''t making a mock with no expectations effectively the same thing: describe "an object which should not get any messages" do it "should not receive any messages" do o = mock("Object") o.foo end end Mock ''Object'' received unexpected message :foo with (no args) -- Rick DeNatale Blog: http://talklikeaduck.denhaven2.com/ Twitter: http://twitter.com/RickDeNatale WWR: http://www.workingwithrails.com/person/9021-rick-denatale LinkedIn: http://www.linkedin.com/in/rickdenatale
On Wed, Jun 3, 2009 at 1:26 PM, Rick DeNatale <rick.denatale at gmail.com> wrote:> On Wed, Jun 3, 2009 at 2:01 PM, David Chelimsky <dchelimsky at gmail.com> wrote: >> On Wed, Jun 3, 2009 at 12:46 PM, Sebastian W. <lists at ruby-forum.com> wrote: >>> Hello all, >>> Is there a way to explicitly tell a mock to expect no messages and give >>> an error if it does? I believe this is the default behavior, but thought >>> it might be nice for code readers to see. >> >> You can tell it to expect not to receive a specific message, but there >> is no way to say that it should not receive any messages. > > Maybe not explicitly but doesn''t isn''t making a mock with no > expectations effectively the same thing: > > describe "an object which should not get any messages" do > ?it "should not receive any messages" do > ? ?o = mock("Object") > ? ?o.foo > ?end > end > > Mock ''Object'' received unexpected message :foo with (no args)Right - Sebastian noted that in the original post - but he''s looking for something explicit.> -- > Rick DeNatale > > Blog: http://talklikeaduck.denhaven2.com/ > Twitter: http://twitter.com/RickDeNatale > WWR: http://www.workingwithrails.com/person/9021-rick-denatale > LinkedIn: http://www.linkedin.com/in/rickdenatale
On Wed, Jun 3, 2009 at 2:30 PM, David Chelimsky <dchelimsky at gmail.com> wrote:> On Wed, Jun 3, 2009 at 1:26 PM, Rick DeNatale <rick.denatale at gmail.com> wrote: >> On Wed, Jun 3, 2009 at 2:01 PM, David Chelimsky <dchelimsky at gmail.com> wrote: >>> On Wed, Jun 3, 2009 at 12:46 PM, Sebastian W. <lists at ruby-forum.com> wrote: >>>> Hello all, >>>> Is there a way to explicitly tell a mock to expect no messages and give >>>> an error if it does? I believe this is the default behavior, but thought >>>> it might be nice for code readers to see. >>> >>> You can tell it to expect not to receive a specific message, but there >>> is no way to say that it should not receive any messages. >> >> Maybe not explicitly but doesn''t isn''t making a mock with no >> expectations effectively the same thing: >> >> describe "an object which should not get any messages" do >> ?it "should not receive any messages" do >> ? ?o = mock("Object") >> ? ?o.foo >> ?end >> end >> >> Mock ''Object'' received unexpected message :foo with (no args) > > Right - Sebastian noted that in the original post - but he''s looking > for something explicit.Well how about: describe "an object which should not get any messages" do it "should not receive any messages" do o = mock("Object") o.should_not_receive(:a_damned_thing) o.foo end end <G> -- Rick DeNatale Blog: http://talklikeaduck.denhaven2.com/ Twitter: http://twitter.com/RickDeNatale WWR: http://www.workingwithrails.com/person/9021-rick-denatale LinkedIn: http://www.linkedin.com/in/rickdenatale
On Wed, Jun 3, 2009 at 1:19 PM, Sebastian W. <lists at ruby-forum.com> wrote:> David Chelimsky wrote: >> On Wed, Jun 3, 2009 at 12:46 PM, Sebastian W. <lists at ruby-forum.com> >> wrote: >>> Hello all, >>> Is there a way to explicitly tell a mock to expect no messages and give >>> an error if it does? I believe this is the default behavior, but thought >>> it might be nice for code readers to see. >> >> You can tell it to expect not to receive a specific message, but there >> is no way to say that it should not receive any messages. >> >> Cheers, >> David > > Okay, cool - feature request? : )You never have to ask to make a feature request - just make one: http://rspec.lighthouseapp.com> -- > Posted via http://www.ruby-forum.com/. > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
On Wed, Jun 3, 2009 at 10:46 AM, Sebastian W. <lists at ruby-forum.com> wrote:> Hello all, > Is there a way to explicitly tell a mock to expect no messages and give > an error if it does? I believe this is the default behavior, but thought > it might be nice for code readers to see.Document it in the mock object''s name. my_mock = mock(''never receives a message'') I don''t see any reason why something should be added to RSpec core. Pat