Ah OK. That makes sense. Thanks!
On Jun 18, 12:01 pm, Tim Barcz <[email protected]> wrote: > I believe the important line in the original document linked is: > > "To mock a class, simply pass its type to MockRepository.CreateMock() along > > > with any parameters for the constructor." > > you don't have to have a default constructor but if you don't, you need to > pass params, which in your example you are not. > > Tim > > On Wed, Jun 17, 2009 at 10:58 PM, [email protected] <[email protected] > > > > > > > wrote: > > > Great, thanks guys! > > > On Jun 18, 11:56 am, Tim Barcz <[email protected]> wrote: > > > I agree with Chris...typically I prefer to mock interfaces over class > > since > > > you don't have to worry about implementation details... > > > > if possible...create an interface. > > > > Tim > > > > On Wed, Jun 17, 2009 at 10:55 PM, Chris Missal <[email protected] > > >wrote: > > > > > That's what I'd do, but I'm not master. :) > > > > > On Wed, Jun 17, 2009 at 10:43 PM, [email protected] < > > > > [email protected]> wrote: > > > > >> By "extracting an interface from the third party class directly" do > > > >> you mean creating a wrapper class which implements an interface which > > > >> defines the methods I'm interested in? > > > > >> On Jun 18, 11:34 am, Chris Missal <[email protected]> wrote: > > > >> > I think it would be easier to mock if you extracted an interface > > from > > > >> the > > > >> > third party class directly, rather than another class. This way, you > > > >> don't > > > >> > have to worry about the constructor. > > > > >> > On Wed, Jun 17, 2009 at 10:29 PM, [email protected] < > > > >> [email protected] > > > > >> > > wrote: > > > > >> > > Yep, I'm not mocking the SUT (although I do admit that I got > > confused > > > >> > > about this at first too). > > > > >> > > Basically, I am wrapping a 3rd party class in my own class so that > > I > > > >> > > can mock it (since that 3rd party class doesn't implement an > > interface > > > >> > > which defines the methods I am interested in, neither are the > > methods > > > >> > > I'm interested in defined as virtual). I'm trying to do it by > > > >> > > implementing the wrapper class as a class with virtual methods > > (rather > > > >> > > then a normal class without overridable methods but which > > implements > > > >> > > an interface which defines those methods) - it didn't make sense > > to me > > > >> > > to have the interface simply for the sake of having it... > > > > >> > > On Jun 18, 11:22 am, Chris Missal <[email protected]> wrote: > > > >> > > > Since it's a mock, the dependencies shouldn't matter since > > you'll be > > > >> > > > artificially handling the functionality of the mocked object. > > > > >> > > > Be sure that the object you're mocking isn't the class under > > test, > > > >> > > usually > > > >> > > > you'll mock the dependencies or the classes that the class under > > > >> test (or > > > >> > > > system under test (SUT)) interacts with, are mocked. > > > > >> > > > Make sense? This was a bit confusing for me at first. > > > > >> > > > On Wed, Jun 17, 2009 at 10:14 PM, [email protected] < > > > >> > > [email protected] > > > > >> > > > > wrote: > > > > >> > > > > Sure does. > > > > >> > > > > In fact, it doesn't stop me from doing > > > > >> > > > > SomeClass c = MockRepository.CreateMock<SomeClass>(null, > > null); > > > > >> > > > > either (the dependencies of SomeClass shouldn't matter in this > > > >> case > > > >> > > > > since it is just a mock). > > > > >> > > > > So this problem is not stopping me from using RhinoMocks to > > mock > > > >> the > > > >> > > > > class, it's just that this behaviour appears to contradict the > > > >> wiki > > > >> > > > > and as this is my first time mocking a class (I have always > > mocked > > > >> > > > > interfaces before), I was worried that I was doing something > > > >> wrong... > > > > >> > > > > On Jun 18, 11:11 am, Chris Missal <[email protected]> > > wrote: > > > >> > > > > > Does it work when you try: > > > > >> > > > > > SomeClass c = MockRepository.CreateMock<SomeClass>(a, b); > > > > >> > > > > > On Wed, Jun 17, 2009 at 9:39 PM, [email protected] > > > >> > > > > > <[email protected]>wrote: > > > > >> > > > > > > Hi, > > > > >> > > > > > > I'm trying to mock a class that doesn't have a default > > > >> constructor > > > >> > > > > > > (i.e. it has been 'overidden' by a custom constructor > > which is > > > >> > > > > > > parameterized) which - according to the wiki ( > > > >> > >http://ayende.com/wiki/ > > > >> > > > > > > Rhino%20Mocks%20Mocking%20classes.ashx) - should be > > possible. > > > >> There > > > >> > > > > > > isn't anything particularly special about what I'm trying > > to > > > >> do, > > > >> > > > > > > simply something like the following: > > > > >> > > > > > > public class SomeClass > > > >> > > > > > > { > > > >> > > > > > > public SomeClass(A a, B b) > > > >> > > > > > > { ... } > > > > >> > > > > > > virtual public string SomeMethod() > > > >> > > > > > > { ... } > > > >> > > > > > > } > > > > >> > > > > > > [Test] > > > >> > > > > > > public void SomeTest() > > > >> > > > > > > { > > > >> > > > > > > SomeClass c = > > MockRepository.CreateMock<SomeClass>(); > > > >> > > > > > > ... > > > >> > > > > > > } > > > > >> > > > > > > NUnit reports the following error: > > > > >> > > > > > > System.MissingMethodException : Can't find a constructor > > with > > > >> > > matching > > > >> > > > > > > arguments > > > >> > > > > > > ----> System.MissingMethodException : Constructor on type > > > >> > > > > > > 'SomeClass207ade2ffbbc4e7cba459d96ac172bb9' not found. > > > > >> > > > > > > cheers! > > > > >> > > > > > -- > > > >> > > > > > Chris Missalhttp://chrismissal.lostechies.com/ > > > > >> > > > -- > > > >> > > > Chris Missalhttp://chrismissal.lostechies.com/ > > > > >> > -- > > > >> > Chris Missalhttp://chrismissal.lostechies.com/ > > > > > -- > > > > Chris Missal > > > > >http://chrismissal.lostechies.com/ > > > > -- > > > Tim Barcz > > > ASPInsiderhttp://timbarcz.devlicio.ushttp://www.twitter.com/timbarcz > > -- > Tim Barcz > ASPInsiderhttp://timbarcz.devlicio.ushttp://www.twitter.com/timbarcz --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Rhino.Mocks" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/RhinoMocks?hl=en -~----------~----~----~----~------~----~------~--~---
