我想为下面的类写单元测试。
如果名称不是“MyEntity”,那么mgr应该是空白的。
负单元测试
使用管理器专用访问器我想将名称更改为“Test”,以便mgr应该为空。 然后将验证mgr值。 要做到这一点,我想明确地调用静态构造函数 但是当我打电话使用显式调用静态构造函数
Manager_Accessor.name = "Test"
typeof(Manager).TypeInitializer.Invoke(null, null);
的名字总是被设置为“myEntity所”如何设置名称为“测试”并调用静态构造函数静态构造函数。
public class Manager
{
private static string name= "MyEntity";
private static object mgr;
static Manager()
{
try
{
mgr = CreateMgr(name);
}
catch (Exception ex)
{
mgr=null;
}
}
}
把它制作“经理”静态意味着*所有*“经理”实例共享相同的* *“的代码mgr'值,这也是永远不会被改变的(因为它是只读的)。那真的是你想要的吗? – 2012-07-17 10:46:59
所以你需要改变一个私人的硬编码静态值,负责设置一个私有静态只读值用于测试目的?这就是为什么大多数可测试性的设计选择都不喜欢静态。 – 2012-07-17 10:56:13