【问题标题】:How to mock private or protected class variable in Microsoft moles?如何在 Microsoft moles 中模拟私有或受保护的类变量?
【发布时间】:2014-04-09 06:49:50
【问题描述】:

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

protected static readonly string _url = "SomeURL";

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

谢谢!

【问题讨论】:

    标签: c# .net unit-testing mocking pex-and-moles


    【解决方案1】:

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

    public class MyActualClass
    {
      protected static readonly string _url = "SomeURL";
      //... other code
    }
    
    public class MyActualClassStub : MyActualClasss
    {
      public string GetUrlValue()
      {
        return _url;
      }
    }
    

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

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

    【讨论】:

      猜你喜欢
      • 2021-11-16
      • 1970-01-01
      • 2015-08-11
      • 2022-11-09
      • 2018-07-16
      • 1970-01-01
      • 2010-09-30
      • 1970-01-01
      • 2011-06-12
      相关资源
      最近更新 更多