【发布时间】:2011-07-21 09:22:46
【问题描述】:
我使用带有 MSTest 框架的 Visual Studio 2010 Professional 来执行单元测试。我有讨厌的生产代码要测试。第一个问题是有问题的代码在构造函数中。我将展示示例:
class ClassToTest
{
public SomeEnum UpperBorder;
public SomeEnum LowerBorder;
public int var1;
private readonly SomeEnum2 _ethnicGroup;
private readonly double _age;
public int DataStart;
public int DataEnd;
public double[] DarkRedDarkYellow;
public double[] DarkYellowGreen;
public double[] GreenLightYellow;
public double[] LightYellowLightRed;
public ClassToTest(SomeEnum upperBorder, SomeEnum lowerBorder, int var1, SomeEnum2 ethnicGroup, int age)
{
UpperBorder = upperBorder;
LowerBorder = lowerBorder;
BscanIndex = bscanIndex;
_ethnicGroup = ethnicGroup;
_age = age;
DataStart = 0;
DataEnd = 0;
DarkRedDarkYellow = null;
DarkYellowGreen = null;
GreenLightYellow = null;
LightYellowLightRed = null;
}
}
我的问题是:
- 为每个变量编写一个带有断言语句的测试?或者编写几个测试,在每个测试中一次只检查一个变量?例如:
[TestMethod()]
public void ClassToTest_Constructor_upperBorder_PTest()
{
//ACT
var ob = new ClassToTest(SomeEnum.bor1, SomeEnum.bor2,10,SomeEnum2.Asian,10);
//ASSERT
Assert.IsNotNull(object);
Assert.AreEqual(ob.upperBorder,SomeEnum.bor1);
}
- 我是否应该检查构造函数是否正确地将参数分配给私有字段?或者,如果有属性会返回该私有字段,但它会执行一些其他操作,例如触发事件、日志操作等。
我找不到任何关于它的信息。因此,您的建议将是最宝贵的。
【问题讨论】:
-
很抱歉,最佳实践问题不是天生主观的吗?
标签: c# visual-studio-2010 unit-testing mstest