Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Rhino Mock模拟属性Getter_C#_Mocking_Properties_Rhino_Getter - Fatal编程技术网

C# 使用Rhino Mock模拟属性Getter

C# 使用Rhino Mock模拟属性Getter,c#,mocking,properties,rhino,getter,C#,Mocking,Properties,Rhino,Getter,下面是类“ConfigurationSection”的属性“LoggerName” 及 但这段代码调用该属性getter并抛出异常 我在不同的地方找过,所有我尝试过的方法都是一样的 有人知道什么可以帮助我的吗 非常感谢 Ryan对于使用rhino模拟类,必须将模拟的属性标记为virtual 你能试着把你的房子改成这个吗 public virtual string LoggerName { get { return Convert.ToString(this["LoggerName"]);

下面是类“ConfigurationSection”的属性“LoggerName”

但这段代码调用该属性getter并抛出异常

我在不同的地方找过,所有我尝试过的方法都是一样的

有人知道什么可以帮助我的吗

非常感谢


Ryan

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

你能试着把你的房子改成这个吗

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

看看是否可以让它工作?

另外,尝试提取接口,比如接口ILog{string LoggerName{get;set}另一个选择是切换到一个模拟框架,该框架可以为模拟类发出IL,这样你就不必为了测试目的而将成员标记为虚拟。@Denis是,还有一些其他的。从Moles网站:抛出新的Y2KBugException()哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
Expect.Call(configSection.LoggerName).Return("LOREMIPSUM");
configSection.Stub(x => x.LoggerName).Return("LOREMIPSUM");
public virtual string LoggerName
{
    get { return Convert.ToString(this["LoggerName"]); }
}