我有一个不可变的类,在构造函数执行期间设置了一些私有字段。我想单元测试这个构造函数,但我不确定这种情况下的“最佳实践”。如何单元测试不可变类的构造函数?
简单示例
该类在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?
}
}
EDIT 1:我已经回答了这个问题有可能的解决方案,但我不确定这是否是“正确的路线”。所以如果你认为你有更好的主意,请发布它。
这个例子并不值得测试,但假设构造函数有一些更复杂的逻辑。避免测试构造函数并假设它在所有类上的方法测试都能正常工作的情况下才是最好的方法?
编辑2:看起来我让样品有点简单。我用更合理的情况更新了它。
的代码看,我可以在那里找不到可能失败的声明。我没有看到任何需要测试的理由。 – jop 2008-09-25 00:18:17
我更新了示例。假设构造函数中有些东西可能会失败,我试图测试的实际代码非常冗长,我不想将它粘贴到此处。 – 2008-09-25 00:20:46