【问题标题】:Moq and virtual properties and methodsMoq 和虚拟属性和方法
【发布时间】:2009-08-05 06:27:35
【问题描述】:

我正在使用 Moq 进行单元测试。为了使 Moq 工作,必须将属性和方法标记为虚拟。有时我在构造函数中传入数据并设置属性值。是否有一条规则是您不应该在构造函数中设置虚拟属性,因为它可能会导致意外行为(如果该类已从基类继承)或者这样做是否安全?

【问题讨论】:

    标签: unit-testing moq


    【解决方案1】:

    确实有问题,Visual Studio Code Analysis explicitly checks for this

    一个简单的解决方法是将工作移动到非虚拟内部成员,然后让虚拟方法调用它,以及构造函数。像这样的:

    public class MyClass
    {
        public MyClass()
        {
            this.DoStuffInternal();
        }
    
        public virtual void DoStuff()
        {
            this.DoStuffInternal();
        }
    
        internal void DoStuffInternal()
        {
            // Interesting stuff happens here
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多