我将以下示例代码作为类变量。
protected static readonly string _url = "SomeURL";
我想通过stub类型或moled类型访问该_url变量。在我测试时,可以通过存根类型访问公共静态类变量。但不是私有或受保护的静态类变量。有关从鼹鼠访问私有或受保护的类变量的任何想法?这将非常有帮助。
谢谢!
答案 0 :(得分:0)
您可以创建从包含受保护静态变量的类派生的存根。在测试中使用存根而不是您实际尝试测试的类:
public class MyActualClass
{
protected static readonly string _url = "SomeURL";
//... other code
}
public class MyActualClassStub : MyActualClasss
{
public string GetUrlValue()
{
return _url;
}
}
这样的事情。请注意,您无法更改只读成员或属性的值。
编辑:我刚刚意识到你特意问过如何用Moles做这件事。我没有使用过Moles,所以我无法向这个方向提供任何建议。但是,上述方法在许多情况下非常有用,因为您需要" get at"受保护的测试场景中的成员,属性或方法。