用犀牛模拟嘲笑一个物业获取者

时间:2011-06-12 21:41:59

标签: c# mocking properties rhino getter

这是“ConfigurationSection”类的属性“LoggerName”。

/// <summary>
/// Gets The LoggerName.
/// </summary>
[ConfigurationProperty("LoggerName", IsRequired = true)]
public string LoggerName
{
    get { return Convert.ToString(this["LoggerName"]); }
}

如果我创建了这种类型的存根或严格模拟,当调用此属性时,它会抛出异常。

我尝试使用以下代码模拟此属性:

Expect.Call(configSection.LoggerName).Return("LOREMIPSUM");

configSection.Stub(x => x.LoggerName).Return("LOREMIPSUM");

但是这段代码调用了属性getter并抛出异常。

我看过不同的地方,我尝试过的所有方法做同样的事情。

有谁知道任何可能对我有帮助的事情?

非常感谢提前。

赖安

1 个答案:

答案 0 :(得分:2)

对于使用rhino模拟类,您必须将您正在模拟的属性标记为virtual

您可以尝试将您的财产更改为此

public virtual string LoggerName
{
    get { return Convert.ToString(this["LoggerName"]); }
}

看看你是否能让它发挥作用?