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