Bingo...it's not a mocked class holding state problem from what I can see
but rather a problem with LogProvider (at least that's where I'd start).

Thanks for clarifying my thoughts Alex.


On Thu, Nov 12, 2009 at 9:17 AM, Alex McMahon <[email protected]> wrote:

> I think Tim is suggesting something within your code is where there is a
> state problem. So the answer to "what can I do to prevent this" is to look
> through the classes you're testing and make sure that multiple instances of
> the class are truly independent from each other. i.e. there are no statics
> or singletons that will be shared among multiple instances. LogProvider does
> look like a sensible place to start
>
> 2009/11/12 tom308 <[email protected]>
>
>
>> you are right, something is the mocked instance...
>>
>> but what can i do to prevent this ?
>>
>>
>> On Nov 12, 4:35 pm, Tim Barcz <[email protected]> wrote:
>> > Without seeing LogProvider, LogMethod1, LogMethod2, LogMethod3 I am
>> guessing
>> > you have saved state problems which is probably coming from use of
>> > LogProvider (static class).
>> >
>> > *something* is getting saved from execution to execution.
>> >
>> > Tim
>> >
>> >
>> >
>> > On Thu, Nov 12, 2009 at 8:30 AM, tom308 <[email protected]> wrote:
>> >
>> > > sorry - always the first one is successful and all other are
>> > > failing....
>> >
>> > > On Nov 12, 4:29 pm, tom308 <[email protected]> wrote:
>> > > > let me just point that running order didn't change anything (always
>> > > > the first one is failing)
>> > > > also i tried to call log.BackToRecord(); at the end of each test
>> > > > method - and :-( it didn't help...
>> >
>> > > > can anyone see the problem ?
>> >
>> > > > On Nov 12, 9:36 am, tom308 <[email protected]> wrote:
>> >
>> > > > > Hey Tim,
>> > > > > of course i can:
>> >
>> > > > >  [TestCleanup()]
>> > > > >          public void MyTestCleanup()
>> > > > >          {
>> > > > >              LogManager.Shutdown();
>> > > > >          }
>> >
>> > > > >         #endregion
>> >
>> > > > >          [TestMethod]
>> > > > >          public void TestBasicLogMethod()
>> > > > >          {
>> > > > >              using (Logger log =
>> MockRepository.GenerateMock<Logger>
>> > > > > (null, null))
>> > > > >              {
>> > > > >                  LogProvider.c_logger = log;
>> > > > >                  log.Expect(l => l.WriteToLog(LogSeverity.Debug,
>> > > > > "LogTest.AOPTests", "LogMethod", "OnEntry"));
>> > > > >                  log.Expect(l => l.WriteToLog(LogSeverity.Debug,
>> > > > > "LogTest.AOPTests", "LogMethod", "OnExit"));
>> >
>> > > > >                  LogMethod();
>> > > > >                  log.VerifyAllExpectations();
>> > > > >              }
>> > > > >          }
>> >
>> > > > >          [TestMethod]
>> > > > >          public void TestLogMethodForCategory()
>> > > > >          {
>> > > > >              using (Logger log =
>> MockRepository.GenerateMock<Logger>
>> > > > > (null, null))
>> > > > >              {
>> > > > >                  LogProvider.c_logger = log;
>> >
>> > > > >                  log.Expect(l => l.WriteToLog(LogSeverity.Debug,
>> > > > > LogCategories.LogFile | LogCategories.EventLog,
>> "LogTest.AOPTests",
>> > > > > "LogMethod2", "OnEntry"));
>> > > > >                  log.Expect(l => l.WriteToLog(LogSeverity.Debug,
>> > > > > LogCategories.LogFile | LogCategories.EventLog,
>> "LogTest.AOPTests",
>> > > > > "LogMethod2", "OnExit"));
>> >
>> > > > >                  LogMethod2();
>> >
>> > > > >                  log.VerifyAllExpectations();
>> > > > >              }
>> > > > >          }
>> >
>> > > > >          [TestMethod]
>> > > > >          public void TestLogMethodForSeverity()
>> > > > >          {
>> > > > >              using (Logger log =
>> MockRepository.GenerateMock<Logger>
>> > > > > (null, null))
>> > > > >              {
>> > > > >                  LogProvider.c_logger = log;
>> > > > >                  log.Expect(l => l.WriteToLog(LogSeverity.Warning,
>> > > > > "LogTest.AOPTests", "LogMethod3", "OnEntry"));
>> > > > >                  log.Expect(l => l.WriteToLog(LogSeverity.Warning,
>> > > > > "LogTest.AOPTests", "LogMethod3", "OnExit"));
>> >
>> > > > >                  LogMethod3();
>> >
>> > > > >                  log.VerifyAllExpectations();
>> > > > >              }
>> > > > >          }
>> >
>> > > > > On Nov 12, 4:43 am, Tim Barcz <[email protected]> wrote:
>> >
>> > > > > > Can you post all of the code here?
>> >
>> > > > > > On Wed, Nov 11, 2009 at 8:57 AM, tom308 <[email protected]>
>> wrote:
>> >
>> > > > > > > Hi all!
>> > > > > > > i am new to TDD & Mocks (but very enthusiastic about it).
>> > > > > > > i am using MSTest & Rhino mock 3.5.
>> > > > > > > testing are OK when running each one separately, but when
>> running
>> > > > > > > entire TestSet, the first one is OK but all other are failing.
>> > > > > > > My hunch is that i am holding the mocked object between tests,
>> and
>> > > > > > > causing the problem (i saw that it is same object).
>> > > > > > > i also tried to use a repository instance insted of the static
>> one,
>> > > > > > > but it didn't help.
>> > > > > > > can someone help ?
>> >
>> > > > > > > my tests are all from the same template:
>> >
>> > > > > > >         [TestMethod]
>> > > > > > >        public void TestBasicLogMethod()
>> > > > > > >        {
>> > > > > > >            using (Logger log =
>> MockRepository.GenerateMock<Logger>
>> > > > > > > (null, null))
>> > > > > > >            {
>> > > > > > >                //set the instance into the logProvider private
>> > > static
>> > > > > > > logger
>> > > > > > >                LogProvider.c_logger = log;
>> >
>> > > > > > >                log.Expect(l => l.WriteToLog(LogSeverity.Debug,
>> > > > > > > "LogTest.AOPTests", "LogMethod", "OnEntry"));
>> > > > > > >                log.Expect(l => l.WriteToLog(LogSeverity.Debug,
>> > > > > > > "LogTest.AOPTests", "LogMethod", "OnExit"));
>> >
>> > > > > > >                LogMethod();
>> > > > > > >                log.VerifyAllExpectations();
>> > > > > > >            }
>> > > > > > >        }
>> >
>> > > > > > --
>> > > > > > Tim Barcz
>> > > > > > Microsoft C# MVP
>> > > > > > Microsoft ASPInsiderhttp://timbarcz.devlicio.ushttp://
>> > >www.twitter.com/timbarcz
>> >
>> > --
>> > Tim Barcz
>> > Microsoft C# MVP
>> > Microsoft ASPInsiderhttp://timbarcz.devlicio.ushttp://
>> www.twitter.com/timbarcz
>>
>>
>
> >
>


-- 
Tim Barcz
Microsoft C# MVP
Microsoft ASPInsider
http://timbarcz.devlicio.us
http://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