I am but it is getting the structure into the state where I can test the sign off process. If I split it up into smaller tests then I still have to go through the same routine for each smaller test which will take more [EMAIL PROTECTED]
> Date: Fri, 4 Jan 2008 10:49:15 -0500> From: [EMAIL PROTECTED]> Subject: Re: > [ADVANCED-DOTNET] Unwiedly unit test> To: > ADVANCED-DOTNET@DISCUSS.DEVELOP.COM> > Looks to me like you're doing much > more than testing the sign off process.> > On Fri, 4 Jan 2008 15:50:57 +0000, > Paul Cowan <[EMAIL PROTECTED]> wrote:> > >Hi all,> >> >I am just looking for > some guidance.> >> >I have the following monstrous unit test (see below) > where I seem to be> testing bout 10 different tests in the same unit test.> > >> >The problem is that it is a work flow type of situation and I need the> > data to be in a certain state before I finally test the bit of> functionality > (planController.AttemptSignOff;.> >> >If I split it up into different tests > then I am retesting everything each> time and duplicating code. This is even > the case if I start using helper> methods.> >> >The guidelines say that unit > tests should only test one thing and one> thing only.> >> >I simply cannot > see how I can break this up.> >> >Any words of advice from the more > knowledgeable out there?> >> >[Test]> >public void Sign_off_Process()> >{> > > Plan plan = null;> > PlanController planController = GetPlanController();> > > _mockRepository.ReplayAll();> > try> > {> > plan = > SavePlanAsSystemAdmin(planController);> > Guid planUid = plan.Uid;> > > planController.AddSignOffContact(plan, GetFirstItem<Contact>());> > > _mockRepository.BackToRecord(_mockEmailSender);> > > _mockEmailSender.Send(null, null, null, null, null);> > > LastCall.IgnoreArguments();> > _mockRepository.ReplayAll();> > > planController.RequestSignOff(plan, "testurl");> > > _mockRepository.VerifyAll();> > plan = planController.LoadPlan(planUid);> > > SignOffContact signOffContact = plan.SignOffList[0];> > > Assert.IsTrue(plan.ReadOnly);> > Assert.AreEqual(plan.MajorVersion, > signOffContact.VerMajor);> > Assert.AreEqual(plan.MinorVersion, > signOffContact.VerMinor);> > Assert.AreEqual(false, > plan.SignOffOperators[0].SetUp);> > Assert.AreEqual(1, > signOffContact.Requested);> > Guid signOffOperatorUid = > plan.SignOffOperators[0].Uid;> > SignOffOperator signOffOperator => > planController.GetSignOffOperator(signOffOperatorUid);> > Assert.AreEqual(1, > signOffOperator.Plans.Count);> > plan = signOffOperator.Plans[0];> > > Assert.IsNotNull(plan);> > Assert.IsFalse(signOffOperator.SetUp);> > string > validLogIn = "1234";> > string invalidLogIn = "12345";> > signOffOperator.Pin > = "ABCD";> > Assert.IsFalse(planController.IsValid(signOffOperator));> > > signOffOperator.Pin = validLogIn;> > > Assert.IsTrue(planController.IsValid(signOffOperator));> > > planController.SetUpSignOffOperator(signOffOperator);> > signOffOperator = > planController.GetSignOffOperator> (signOffOperatorUid);> > > Assert.IsTrue(signOffOperator.SetUp);> > > Assert.IsFalse(planController.LogInSignOffOperatorWithPin> > (signOffOperatorUid, invalidLogIn));> > > Assert.IsTrue(planController.LogInSignOffOperatorWithPin> (signOffOperator, > validLogIn));> > Assert.AreEqual(1, planController.SignOffOperatorsPlanList> > (signOffOperatorUid).Count);> > > _mockRepository.BackToRecord(_mockEmailSender);> > > _mockEmailSender.Send(null, null, null, null, null);> > > LastCall.IgnoreArguments();> > _mockRepository.ReplayAll();> > > planController.AttemptSignOff(signOffOperatorUid);> > > _mockRepository.VerifyAll();> > }> > catch (Exception ex)> > {> > > _log.Error(ex);> > Assert.Fail(ex.Message);> > }> > finally> > {> > if ((plan > != null) && (!plan.IsNew))> > planController.DeletePlan(plan.Uid);> > }> >}> > > [EMAIL PROTECTED]> > >_________________________________________________________________> >Who's > friends with who and co-starred in what?> > >http://www.searchgamesbox.com/celebrityseparation.shtml> > >===================================> >This list is hosted by DevelopMentorĀ® > http://www.develop.com> >> >View archives and manage your subscription(s) at> > http://discuss.develop.com> > ===================================> This list > is hosted by DevelopMentorĀ® http://www.develop.com> > View archives and > manage your subscription(s) at http://discuss.develop.com _________________________________________________________________ Fancy some celeb spotting? https://www.celebmashup.com =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com