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