1

我有以下示例代码作为类变量。

protected static readonly string _url = "SomeURL";

我想通过存根类型或摩尔类型访问该 _url 变量。正如我测试的那样,可以通过存根类型访问公共静态类变量。但不是私有或受保护的静态类变量。那么关于从 moles 访问私有或受保护的类变量有什么想法吗?这将非常有帮助。

谢谢 !

4

1 回答 1

0

您可以创建一个派生自包含受保护静态变量的类的存根。在您的测试中使用存根而不是您实际尝试测试的类:

public class MyActualClass
{
  protected static readonly string _url = "SomeURL";
  //... other code
}

public class MyActualClassStub : MyActualClasss
{
  public string GetUrlValue()
  {
    return _url;
  }
}

类似的东西。请注意,您不能更改只读成员或属性的值。

编辑:我刚刚意识到您专门询问了如何使用 Moles 执行此操作。我没有使用过 Moles,所以我无法在这个方向上提供任何建议。但是,当您需要在测试场景中“获取”受保护的成员、属性或方法时,上述方法在许多情况下都很有用。

于 2014-04-09T08:02:31.967 回答