我正在使用中介模式來促進GUI對象的單元測試。使用中介模式進行單元測試 - 全部私下公開
psudo代碼示例:
Class MyGuiClass
{
//... Declare and initialize mediator to be a MyMediator
private void On_SomeButtonPressed()
{
mediator.SomeButtonWasPressed();
}
}
Class MyMeditator
{
public void On_SomeButtonPressed()
{
//.. Do something now that the button was pressed
}
}
這是不錯的,因爲我現在可以進行單元測試時,而無需創建一個窗口按下SomeButton會發生什麼。
我擔心的是,我採取了一種私人的方法,並且讓任何一位調解員打電話給公衆。過去我做過這樣的事情並沒有打擾到我,因爲我沒有很多方法需要公開。
我目前正在重構一個非常大的類來使用這個模式,我想知道是否有某種方式可以控制誰可以創建MyMediator或某些方法公開的類的可見性。 (這是不可能的,甚至必要的,但我想我會問。)
(我使用C#3.0和.NET 3.5 SP1)
你在這裏做的事情有時也被稱爲謙卑對象模式。不要對私人上市的東西感到不滿。 Theres我開始進行單元測試時發生了一種思維變化。我停止使用語言結構來限制如何使用代碼,並開始使用單元測試來驗證代碼的實際功能。它導致更清潔,更簡單的代碼。 – 2009-11-02 23:07:36