2011-06-12 92 views
0

這是「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和拋出異常。

我看過不同的地方,我試過的所有方法都做同樣的事情。

有人知道任何可以幫助我嗎?

非常感謝提前。

瑞安

回答

2

對於犀牛嘲笑類,你必須標記你被嘲諷爲virtual屬性。

你可以嘗試改變你的財產,以該

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

,看看你能得到它的工作?

+1

另外,嘗試提取接口,像接口ILog {string LoggerName {get; set}} – 2011-06-12 22:14:06

+0

另一種選擇是切換到一個模擬框架,可以發射嘲笑類的IL,所以你不必標記成員虛擬僅用於測試目的。 – 2011-06-12 22:15:35

+0

PostSharp不是免費的;) – 2011-06-12 22:16:39