如何在MicrosoftMoles中模拟私有或受保护的类变量
本文关键字:受保护 类变量 模拟 MicrosoftMoles | 更新日期: 2023-09-27 17:57:27
我有下面的示例代码作为类变量。
protected static readonly string _url = "SomeURL";
我想通过stub类型或moled类型访问_url变量。在测试时,可以通过存根类型访问公共静态类变量。但不是私有或受保护的静态类变量。那么,关于从摩尔访问私有或受保护的类变量,有什么想法吗?这将非常有帮助。
谢谢!
您可以创建一个从包含受保护静态变量的类派生的存根。在测试中使用存根,而不是实际尝试测试的类:
public class MyActualClass
{
protected static readonly string _url = "SomeURL";
//... other code
}
public class MyActualClassStub : MyActualClasss
{
public string GetUrlValue()
{
return _url;
}
}
类似的东西。请注意,您不能更改只读成员或属性的值。
编辑:我刚刚意识到你特别问过如何使用Moles。我没有使用过Moles,所以我不能在这个方向上提供任何建议。但是,当您需要在测试场景中"获取"受保护的成员、属性或方法时,上述方法在许多情况下都很有用。