Dear All, Class B is a subclass of class A. Could anyone tell me how to monitor if object created from class B receives a super message when its method is invoked. Thanks. Best regards, Lei, Zhi-Qiang
David Chelimsky
2010-Sep-30 11:59 UTC
[rspec-users] Monitor method invoking from superclass
On Sep 30, 2010, at 4:02 AM, Zhi-Qiang Lei wrote:> Dear All, > > Class B is a subclass of class A. Could anyone tell me how to monitor if object created from class B receives a super message when its method is invoked. Thanks.I don''t know of a way to do that. What problem are you trying to solve?
Class A def a #some code end end Class B def a #some code super end end I want to if B is receive ''super'' message. Thanks. On Sep 30, 2010, at 7:59 PM, David Chelimsky wrote:> On Sep 30, 2010, at 4:02 AM, Zhi-Qiang Lei wrote: > >> Dear All, >> >> Class B is a subclass of class A. Could anyone tell me how to monitor if object created from class B receives a super message when its method is invoked. Thanks. > > I don''t know of a way to do that. What problem are you trying to solve? > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users
David Chelimsky
2010-Sep-30 13:15 UTC
[rspec-users] Monitor method invoking from superclass
On Sep 30, 2010, at 7:45 AM, Zhi-Qiang Lei wrote:> On Sep 30, 2010, at 7:59 PM, David Chelimsky wrote: > >> On Sep 30, 2010, at 4:02 AM, Zhi-Qiang Lei wrote: >> >>> Dear All, >>> >>> Class B is a subclass of class A. Could anyone tell me how to monitor if object created from class B receives a super message when its method is invoked. Thanks. >> >> I don''t know of a way to do that. What problem are you trying to solve?[ I moved your post to the bottom. Please post at the bottom or in-line]> Class A > def a > #some code > end > end > > Class B > def a > #some code > super > end > end > > I want to if B is receive ''super'' message. Thanks.I understand what you meant, but I don''t understand why you want to do this. What is the bigger problem you are trying to solve? Why do you want to monitor when super gets called?
On Sep 30, 2010, at 9:15 PM, David Chelimsky wrote:> On Sep 30, 2010, at 7:45 AM, Zhi-Qiang Lei wrote: > >> On Sep 30, 2010, at 7:59 PM, David Chelimsky wrote: >> >>> On Sep 30, 2010, at 4:02 AM, Zhi-Qiang Lei wrote: >>> >>>> Dear All, >>>> >>>> Class B is a subclass of class A. Could anyone tell me how to monitor if object created from class B receives a super message when its method is invoked. Thanks. >>> >>> I don''t know of a way to do that. What problem are you trying to solve? > > [ I moved your post to the bottom. Please post at the bottom or in-line] > >> Class A >> def a >> #some code >> end >> end >> >> Class B >> def a >> #some code >> super >> end >> end >> >> I want to if B is receive ''super'' message. Thanks. > > I understand what you meant, but I don''t understand why you want to do this. What is the bigger problem you are trying to solve? Why do you want to monitor when super gets called? > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-usersThank you. Actually what I want is just to write a test case for it, with rspec.
David Chelimsky
2010-Sep-30 13:45 UTC
[rspec-users] Monitor method invoking from superclass
On Sep 30, 2010, at 8:20 AM, Zhi-Qiang Lei wrote:> On Sep 30, 2010, at 9:15 PM, David Chelimsky wrote: > >> On Sep 30, 2010, at 7:45 AM, Zhi-Qiang Lei wrote: >> >>> On Sep 30, 2010, at 7:59 PM, David Chelimsky wrote: >>> >>>> On Sep 30, 2010, at 4:02 AM, Zhi-Qiang Lei wrote: >>>> >>>>> Dear All, >>>>> >>>>> Class B is a subclass of class A. Could anyone tell me how to monitor if object created from class B receives a super message when its method is invoked. Thanks. >>>> >>>> I don''t know of a way to do that. What problem are you trying to solve? >> >> [ I moved your post to the bottom. Please post at the bottom or in-line] >> >>> Class A >>> def a >>> #some code >>> end >>> end >>> >>> Class B >>> def a >>> #some code >>> super >>> end >>> end >>> >>> I want to if B is receive ''super'' message. Thanks. >> >> I understand what you meant, but I don''t understand why you want to do this. What is the bigger problem you are trying to solve? Why do you want to monitor when super gets called? > > Thank you. Actually what I want is just to write a test case for it, with rspec.You can not. Good luck, David
On Thu, Sep 30, 2010 at 9:45 AM, David Chelimsky <dchelimsky at gmail.com> wrote:> On Sep 30, 2010, at 8:20 AM, Zhi-Qiang Lei wrote:>>>> I want to if B is receive ''super'' message. Thanks. >>> >>> I understand what you meant, but I don''t understand why you want to do this. What is the bigger problem you are trying to solve? Why do you want to monitor when super gets called? >> >> Thank you. Actually what I want is just to write a test case for it, with rspec. > > You can not.And following up on David''s reply, I don''t think you should, Lei. What you really should be testing that the observable effects of the call are ''as if'' the super call were made. If you could test that the super call was made it would be testing that the implementation were a certain way more than the behavior of the object, and that''s the road to writing brittle tests. -- Rick DeNatale Blog: http://talklikeaduck.denhaven2.com/ Github: http://github.com/rubyredrick Twitter: @RickDeNatale WWR: http://www.workingwithrails.com/person/9021-rick-denatale LinkedIn: http://www.linkedin.com/in/rickdenatale
On Sep 30, 2010, at 9:56 PM, Rick DeNatale wrote:> On Thu, Sep 30, 2010 at 9:45 AM, David Chelimsky <dchelimsky at gmail.com> wrote: >> On Sep 30, 2010, at 8:20 AM, Zhi-Qiang Lei wrote: > >>>>> I want to if B is receive ''super'' message. Thanks. >>>> >>>> I understand what you meant, but I don''t understand why you want to do this. What is the bigger problem you are trying to solve? Why do you want to monitor when super gets called? >>> >>> Thank you. Actually what I want is just to write a test case for it, with rspec. >> >> You can not. > > And following up on David''s reply, I don''t think you should, Lei. > > What you really should be testing that the observable effects of the > call are ''as if'' the super call were made. > > If you could test that the super call was made it would be testing > that the implementation were a certain way more than the behavior of > the object, and that''s the road to writing brittle tests. > > -- > Rick DeNatale > > Blog: http://talklikeaduck.denhaven2.com/ > Github: http://github.com/rubyredrick > Twitter: @RickDeNatale > WWR: http://www.workingwithrails.com/person/9021-rick-denatale > LinkedIn: http://www.linkedin.com/in/rickdenatale > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-usersIn my case, there is already a test case for the method in class A, and its feature is complex. So I was trying to test the super call but observable effect for simple. Anyway, thank you both.
On Thu, Sep 30, 2010 at 10:36 AM, Zhi-Qiang Lei <zhiqiang.lei at gmail.com> wrote:> > On Sep 30, 2010, at 9:56 PM, Rick DeNatale wrote: >>> What you really should be testing that the observable effects of the >> call are ''as if'' the super call were made. >> >> If you could test that the super call was made it would be testing >> that the implementation were a certain way more than the behavior of >> the object, and that''s the road to writing brittle tests.> > In my case, there is already a test case for the method in class A, and its feature is complex. So I was trying to test the super call but observable effect for simple. Anyway, thank you both.That''s what shared example groups are for. -- Rick DeNatale Blog: http://talklikeaduck.denhaven2.com/ Github: http://github.com/rubyredrick Twitter: @RickDeNatale WWR: http://www.workingwithrails.com/person/9021-rick-denatale LinkedIn: http://www.linkedin.com/in/rickdenatale
Rick, could you elaborate on this? I''m curious, how would you use a shared example group here, given his sample code? My first thought was to use ancestors to get the parent class, and re-define the ''a'' method there to do something simple and observable, and then test that. Is that evil? On Thu, Sep 30, 2010 at 11:00 AM, Rick DeNatale <rick.denatale at gmail.com>wrote:> On Thu, Sep 30, 2010 at 10:36 AM, Zhi-Qiang Lei <zhiqiang.lei at gmail.com> > wrote: > > > > On Sep 30, 2010, at 9:56 PM, Rick DeNatale wrote: > > > > >> What you really should be testing that the observable effects of the > >> call are ''as if'' the super call were made. > >> > >> If you could test that the super call was made it would be testing > >> that the implementation were a certain way more than the behavior of > >> the object, and that''s the road to writing brittle tests. > > > > > In my case, there is already a test case for the method in class A, and > its feature is complex. So I was trying to test the super call but > observable effect for simple. Anyway, thank you both. > > That''s what shared example groups are for. > > > -- > Rick DeNatale > > Blog: http://talklikeaduck.denhaven2.com/ > Github: http://github.com/rubyredrick > Twitter: @RickDeNatale > WWR: http://www.workingwithrails.com/person/9021-rick-denatale > LinkedIn: http://www.linkedin.com/in/rickdenatale > _______________________________________________ > 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/20100930/b121d187/attachment.html>