2009-09-29 107 views
1

我想單元測試幾個MVP實現,不能完全弄清楚嘲笑視圖的最佳方法。我會盡力把它煮沸。視圖IView由例如屬於IControl類型的房產。使用Rhino-Mocks進行遞歸嘲弄

interface IView 
{ 
    IControl Control1 { get; } 
    IControl Control2 { get; } 
} 

interface IControl 
{ 

    bool Enabled { get; set; } 

    object Value { get; set; } 

} 

我的問題是,是否有一個簡單的方法是設置屬性行爲啓用和價值上的iView接口IControl接口的成員 - 就​​像遞歸嘲諷猜測。我寧願不在視圖上設置對所有屬性的期望(每個視圖上的相當一部分)。

在此先感謝

回答

0

感謝您的回覆。 min的同事建議我使用反射來指定IControl元素中的PropertyBehavior。這樣我仍然可以嘲笑視圖,而不必爲每個視圖編寫縮減代碼。像這樣:haacked.com/archive/2007/05/04/...如果有人有任何其他想法,請發表評論

0

您將不得不分別設置每個IControl實例的行爲。您無法定義類型級別的行爲。

如果你的場景真的很簡單,我會考慮製作一個ValidControl和一個InvalidControl,它們都實現了IControl,並且只是使用那些實例來代替用Rhino Mocks模擬IControl。您應該仍然可以嘲笑IView,因爲您似乎沒有在視圖上設置控件的方法。