I uploaded ProtectedMethodCase.zip into files (It works in VisualStudio 2008 with Microsoft Test Framework). I implemented the test using the PartialMock as was suggested earlier.
On Mar 24, 3:20 pm, Tim Barcz <[email protected]> wrote: > It wasn't AAA, I was trying to clarify aruond PartialMock but I think I only > muddied the waters.... > > On Tue, Mar 24, 2009 at 2:19 PM, Tuna Toksoz <[email protected]> wrote: > > I didin't realize it was AAA syntax, because I saw ReplayAll, and though > > the record/replay mode. > > > Tuna Toksöz > > Eternal sunshine of the open source mind. > > >http://devlicio.us/blogs/tuna_toksoz > >http://tunatoksoz.com > >http://twitter.com/tehlike > > > On Tue, Mar 24, 2009 at 9:08 PM, Chris Martin <[email protected]>wrote: > > >> This won't even compile. > >> Your methods are protected. > > >> Change them to public and this following passes. > > >> --- > >> public class ClassA > >> { > >> public bool Success; > > >> public virtual bool FileExists(string filename) > >> { > >> return File.Exists(filename); > >> } > > >> public virtual void Process(string filename) > >> { > >> Success = FileExists(filename); > >> } > >> } > > >> [TestFixture] > >> public class Tests > >> { > >> [Test] > >> public void process_test() > >> { > >> var mocks = new MockRepository(); > > >> var a = mocks.PartialMock<ClassA>(); > > >> Expect.Call(a.FileExists(null)).IgnoreArguments().Return(true); > >> mocks.ReplayAll(); > > >> a.Process("test.test"); > > >> Assert.AreEqual(a.Success, true); > >> } > >> } > > >> On Tue, Mar 24, 2009 at 10:50 AM, Jake <[email protected]> wrote: > > >>> Sorry, for this mistake, but method is virtual! > >>> Here is more info: > > >>> public class classA: baseClass > >>> { > > >>> public bool Success; > > >>> protected virtual bool FileExists(string fileName) > >>> { > >>> return File.Exists(fileName); > >>> } > > >>> protected virtual void Process(string fileName) > >>> { > >>> //Do something > >>> if(FileExists(fileName)) > >>> { > >>> Success = true; > >>> } > >>> else > >>> { > >>> Success = false; > >>> } > >>> } > >>> } > > >>> Unit test: > > >>> [TestMethod] > >>> public void ProcessTest() > >>> { > >>> var a = _mocks.StrickMock<baseClass>(); > >>> Expect.Call(a.FileExists(null)).IgnoreArguments().Return(true); > >>> _mocks.ReplayAll(); > >>> a.Process("test.test"); //File doesn't exists > >>> Assert.AreEqual(true, a.Success); //Fails here > >>> } > > >>> On Mar 24, 1:39 pm, Alex McMahon <[email protected]> wrote: > >>> > Method2 must be a virtual method for RhinoMocks to be able to mock the > >>> > method with a PartialMock, > > >>> > On Tue, Mar 24, 2009 at 5:21 PM, Jake <[email protected]> wrote: > > >>> > > Ayende, > >>> > > I am trying to use Rhino Mocks in following scenario: > > >>> > > void classA.Method1() > >>> > > { > >>> > > //some stuff > >>> > > if(classA.Method2(var)) > >>> > > { > >>> > > //Do something > >>> > > } > >>> > > else > >>> > > { > >>> > > //Do something else > >>> > > } > >>> > > //some other stuff > >>> > > } > > >>> > > Now, I created partial mock for the class and set expectation for > >>> > > Method2 like so: > > >>> > > Expect.Call(classAMock.Method2(null)).IgnoreArguments().Return(true); > > >>> > > Real implementation of the method returns false. > > >>> > > When I execute the test it goes through the path when Method2 returns > >>> > > false. > > >>> > > How can that be? > > >> -- > > >> Charles Kettering - "My interest is in the future because I am going to > >> spend the rest of my life there." --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
