【发布时间】:2008-09-25 00:09:13
【问题描述】:
我有一个不可变类,其中包含一些在构造函数执行期间设置的私有字段。我想对这个构造函数进行单元测试,但我不确定这种情况下的“最佳实践”。
简单示例
这个类在Assembly1中定义:
public class Class2Test
{
private readonly string _StringProperty;
public Class2Test()
{
_StringProperty = ConfigurationManager.AppSettings["stringProperty"];
}
}
这个类是在Assembly2中定义的:
[TestClass]
public class TestClass
{
[TestMethod]
public void Class2Test_Default_Constructor()
{
Class2Test x = new Class2Test();
//what do I assert to validate that the field was set properly?
}
}
编辑 1:我已经用一个潜在的解决方案回答了这个问题,但我不确定这是否是“正确的方法”。因此,如果您认为自己有更好的想法,请发布。
这个例子真的不值得测试,但假设构造函数有一些更复杂的逻辑。最好的方法是避免测试构造函数并假设它在类上的方法的所有测试都有效的情况下有效吗?
编辑 2:看起来我让示例有点简单。我已经用更合理的情况更新了它。
【问题讨论】:
-
查看代码,我在其中找不到可能失败的语句。我看不出有什么理由需要对其进行测试。
-
我更新了示例。假设构造函数中有些东西可能会失败,我要测试的实际代码很长,我不想在这里粘贴。
标签: c# unit-testing