我正在學習編寫mvc控制器的單元測試。然而,在我的一個控制器中,它引用了具體的工廠實例,我們稱它爲'ConcreteFactory',然而,在這種情況下,我不知道如何測試這個控制器,因爲我真的不想擁有工廠類實例返回一個真實/生產實例,我想這不應該是一個很好的單元測試,有沒有一些方法來重構我的代碼,並模擬facotry類返回的實例?如何在ASP.NET MVC控制器或Main()中引用具體工廠類的單元測試類()
廠:
Public Abstract class BaseFactory
{
public ICalculator GetCalculator();
}
public class ConcreteFactory
{
public ICalculator GetCalculator();
{
return new MyCalculator();
}
}
ASP.NET控制器:
Public ViewResult GetResult()
{
var result=(new ConcreteFactory()).GetCalculator();
return View(result);
}
大加讚賞。
您將需要使用依賴注入爲控制器提供'BaseFactory'的具體實現,而不是直接實例化它('New ConcreteFactory()')。這將使您能夠在測試中向控制器提供'BaseFactory'的假實現。 – GolfWolf 2014-09-02 09:33:25