好吧,讓我們假設我有一個像下面...錯誤設置物業在單元測試使用起訂量
public class Foo : IFoo
{
public string Bar
{
get { ... }
}
public void Initialize()
{
...
}
}
類......,正如你可以看到它實現了一個接口,所以我可以嘲笑它。現在,在我的單元測試我建立這樣的模擬...
var mock = new Mock<IFoo>();
mock.SetupProperty(p => p.Bar).SetReturnsDefault("Some static value here.");
...然而,當測試運行,我得到以下錯誤...
System.ArgumentException :屬性IFoo.Bar是隻讀的。 參數名:表達
所以,三個問題:
- 我在做什麼錯?
- 我需要做什麼?
- 你能解釋我怎麼誤解了
SetReturnsDefault
?
謝謝大家!
這並不能解決問題,因爲'Bar'在原來的接口仍然是隻讀的 –
還改變生產代碼,以便測試表現良好,並不是在所有可能的情況是個好主意 – cmart