如何使用Shims / Stub进行私有方法和只读属性(getter)

时间:2014-12-15 15:19:55

标签: c# get readonly

如何使用Shim上下文覆盖私有方法和只读属性。 喜欢用

public string FullName {
get {
return "First" + "Last";
}
}

还有任何要求实例化测试中的Component以执行Shim上下文结果。

由于

2 个答案:

答案 0 :(得分:1)

这对你有用吗?

Class A {
    public virtual string FullName {get {"First" + "Last",}}
}

ClassB : ClassA {
    public override string FullName {get {"My new name";} }
}

相反,您也可以使用在ClassB的构造函数中正确设置的私有后备字段。要覆盖私有方法是不可能的,只有受保护的,内部的或公共成员。

答案 1 :(得分:0)

通过填充上下文

访问readonly属性
Fakes.ShimCustomer.AllInstances.FullNameGet = (cust) => 
                {
                    return "Hello World";
                };

从UnitTest到上面属性的任何调用都将输出为“Hello World”

感谢。