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