Take Unit Testing to the Next Level: Listing 2.

Adding Test Methods

[TestMethod()]
public void PerformOpSubtractTest()
{
  CalcMath target = new CalcMath();
  double expected = 12;
  double actual;
  target.PerformOp(Op.Subtract, 20);
  actual = target.PerformOp(Op.Equals, 8);
  Assert.AreEqual(expected, actual);
}

[TestMethod()]
public void PerformOpMultiplyTest()
{
  CalcMath target = new CalcMath();
  double expected = 12;
  double actual;
  target.PerformOp(Op.Multiply, 3);
  actual = target.PerformOp(Op.Equals, 4);
  Assert.AreEqual(expected, actual);
}

[TestMethod()]
public void PerformOpDivideTest()
{
  CalcMath target = new CalcMath();
  double expected = 12;
  double actual;
  target.PerformOp(Op.Divide, 36);
  actual = target.PerformOp(Op.Equals, 3);
  Assert.AreEqual(expected, actual);
}

About the Author

Jeff Levinson is the Application Lifecycle Management practice lead for Northwest Cadence specializing in process and methodology. He is the co-author of "Pro Visual Studio Team System with Database Professionals" (Apress 2007), the author of "Building Client/Server Applications with VB.NET" (Apress 2003) and has written numerous articles. He is an MCAD, MCSD, MCDBA, MCT and is a Team System MVP. He has a Masters in Software Engineering from Carnegie Mellon University and is a former Solutions Design and Integration Architect for The Boeing Company. You can reach him at Jeff.Levinson@nwcadence.com.