2
我寫了一些單元測試,我得到嘗試做以下時,從我的實際代碼拋出的異常:C#的Visual Studio單元測試,懲戒了客戶端IP地址
string IPaddress = HttpContext.Current.Request.UserHostName.ToString();
是否有如何在不重寫我的代碼來接受IP地址作爲參數的情況下模擬IP地址?
謝謝!
我寫了一些單元測試,我得到嘗試做以下時,從我的實際代碼拋出的異常:C#的Visual Studio單元測試,懲戒了客戶端IP地址
string IPaddress = HttpContext.Current.Request.UserHostName.ToString();
是否有如何在不重寫我的代碼來接受IP地址作爲參數的情況下模擬IP地址?
謝謝!
基本上,通過將數據推入(例如在本例中)「上下文」或「設置」類的類中來解決此類問題。
public interface IAppContext
{
string GetIP();
}
然後,您有一個督促落實,做真實的東西和你測試一個模擬的還是假的。
public class AppContext : IAppConext
{
public string GetIP()
{
return HttpContext.Current.Request.UserHostName.ToString();
}
}
的應用方面得到被推到使用IP地址的類...
OH-和據我知道有沒有內在的嘲弄任何VS版本,您將需要檢查其中之一 - Rhino mocks,Moq ...有很多!另請參閱typemock,但它採用了不同的方法。
PK :-)
是的,我知道依賴注入,我只是想避免改變我現有的代碼:( – Jimmy 2010-04-20 21:44:17
有型模擬 - http://site.typemock.com/ - 但我從來沒有使用它,我一直有時間來改變代碼!;-) – 2010-04-20 21:48:09