我想为下面的课程编写单元测试。
如果名称不是“MyEntity”,则 mgr 应为空。
消极的单元测试
使用 Manager 私有访问器,我想将名称更改为“Test”,以便 mgr 应该为空。
然后会验证 mgr 值。
为了实现这一点,我想显式调用静态构造函数
但是当我使用调用静态构造函数时
Manager_Accessor.name = "Test"
typeof(Manager).TypeInitializer.Invoke(null, null);
name 始终设置为“MyEntity”,如何将 name 设置为“Test”并调用静态构造函数。
public class Manager
{
private static string name= "MyEntity";
private static object mgr;
static Manager()
{
try
{
mgr = CreateMgr(name);
}
catch (Exception ex)
{
mgr=null;
}
}
}
正如我今天发现的,静态构造函数可以直接调用:
from 另一篇 Stackoverflow 帖子 https://stackoverflow.com/a/2654684/2505186
其他答案都很好,但如果你需要强制上课
无需引用类型即可运行的构造函数(即
反射),您可以使用:
Type type = ...;
System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(type.TypeHandle);
我必须将此代码添加到我的应用程序中解决 .net 4.0 CLR 中可能存在的错误 https://stackoverflow.com/q/29493473/2505186.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)