Ah, thanks.
Ahead of me yet again :)

Is there any reason why PartialMultiMock is not part of the
MockRepository static methods for AAA?
Also, should there not be a way of doing a PartialMultiMock where the
Interface methods not fulfilled by the partial mock class have stub
behaviour.
Currently I have to add the stub behaviour for each method on the
Interface manually.
So, I guess I am looking for a PartialMultiStub :) Is there any way of
achieving this?

On Sep 1, 1:38 pm, Tim Barcz <[email protected]> wrote:
> With the release of rhino 3.6 you should be able to do Partials using
> AAA syntax (that is without the creation of a MockRepository)
>
> On 9/1/09, Mark Whitfeld <[email protected]> wrote:
>
>
>
>
>
> > Ah, ok I have solved my own problem within moments of posting :)
>
> > The last test should read:
>
> > [Test]
> > public void Test_MethodB_ShouldUseMethodA()
> > {
> >     //---------------Set up test pack-------------------
> >     const string otherReturnValue = "Hello Universe";
> >     MockRepository mockRepository = new MockRepository();
> >     MyClass myClass = mockRepository.PartialMock<MyClass>();
> >     myClass.Stub(t => t.MethodA()).Return(otherReturnValue);
> >     myClass.Replay();
> >     //---------------Assert Precondition----------------
> >     Assert.AreEqual(otherReturnValue, myClass.MethodA());
> >     //---------------Execute Test ----------------------
> >     string returnedString = myClass.MethodB();
> >     //---------------Test Result -----------------------
> >     string expected = string.Format("'{0}'", otherReturnValue);
> >     Assert.AreEqual(expected, returnedString);
> > }
>
> > I was missing the "myclass.Replay();" call.
> > I think that the basis for my mistake is that I usually use the AAA
> > syntax and stubs, and for Partial mocks I could not use this in the
> > normal way.
> > Is there any reason why there is no 'Partial Stub'?
> > All I would probably have needed was a static method on MockRepository
> > called something like "GeneratePartial<T>":
>
> > public static T GeneratePartial<T>(params object[]
> > argumentsForConstructor)
> >     where T : class
> > {
> >     MockRepository repository = new MockRepository();
> >     T obj = repository.PartialMock<T>(argumentsForConstructor);
> >     repository.Replay(obj);
> >     return obj;
> > }
>
> > On Sep 1, 12:53 pm, Mark Whitfeld <[email protected]> wrote:
> >> Firstly, thanks for an amazing Mocking framework. I especially love
> >> the type safety given using lambdas and the AAA syntax.
>
> >> My only problem has been with trying to do a partial mock.
> >> Many times I am testing for a specific method call on an interface,
> >> and I pretty much just want the rest of the methods on the interface
> >> to return something useful. So my first thought was to try to create a
> >> partial mock for a class that implements the interface and then just
> >> 'override' the specific method of the interface using Rhino Mocks.
> >> Not matter what I tried I couldn't get this to work. Any Suggestions?
>
> >> I also need to test the scenario where I need to check that one method
> >> on a class is using/calling another method on the class. I tried to
> >> use Partial mocks for this, but couldn't get that to work either. Is
> >> there something that I'm doing wrong?
>
> >> Here is a simple code sample. Please could you show me how to get the
> >> last test working. Thanks.
> >> Here it goes:
>
> >> public class MyClass
> >>     {
> >>         public virtual string MethodA()
> >>         {
> >>             return "Hello World";
> >>         }
>
> >>         public virtual string MethodB()
> >>         {
> >>             return string.Format("'{0}'", MethodA());
> >>         }
> >>     }
>
> >>     [TestFixture]
> >>     public class TestExample
> >>     {
>
> >>         [Test]
> >>         public void Test_MethodA_ShouldReturnHelloWorld()
> >>         {
> >>             //---------------Set up test pack-------------------
> >>             MyClass myClass = new MyClass();
> >>             //---------------Assert Precondition----------------
> >>             //---------------Execute Test ----------------------
> >>             string returnedString = myClass.MethodA();
> >>             //---------------Test Result -----------------------
> >>             const string expected = "Hello World";
> >>             Assert.AreEqual(expected, returnedString);
> >>         }
>
> >>         [Test]
> >>         public void Test_MethodB_ShouldReturnQuotedHelloWorld()
> >>         {
> >>             //---------------Set up test pack-------------------
> >>             MyClass myClass = new MyClass();
> >>             //---------------Assert Precondition----------------
> >>             //---------------Execute Test ----------------------
> >>             string returnedString = myClass.MethodB();
> >>             //---------------Test Result -----------------------
> >>             const string expected = "'Hello World'";
> >>             Assert.AreEqual(expected, returnedString);
> >>         }
>
> >>         [Test]
> >>         public void Test_MethodB_ShouldUseMethodA()
> >>         {
> >>             //---------------Set up test pack-------------------
> >>             const string otherReturnValue = "Hello Universe";
> >>             MyClass myClass = new MockRepository().PartialMock<MyClass>
> >> ();
> >>             myClass.Stub(t => t.MethodA()).Return
> >> (otherReturnValue).Repeat.Any();
> >>             myClass.Stub(t => t.MethodB()).CallOriginalMethod
> >> (OriginalCallOptions.NoExpectation);
> >>             //---------------Assert Precondition----------------
> >>             Assert.AreEqual(otherReturnValue, myClass.MethodA());
> >>             //---------------Execute Test ----------------------
> >>             string returnedString = myClass.MethodB();
> >>             //---------------Test Result -----------------------
> >>             string expected = string.Format("'{0}'",
> >> otherReturnValue);
> >>             Assert.AreEqual(expected, returnedString);
> >>         }
> >>     }
>
> >> Any Ideas?
>
> >> Thanks
> >> -Mark Whitfeld
>
> --
> Sent from my mobile device
>
> Tim Barcz
> Microsoft 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to