Я хочу написать некоторое UT для моего кода
, который использует HttpContext.Current
Как я могу подделать этот объект?
Вы можете использовать коммерческий инструмент, такой как Typemock Isolator , чтобы подделать HttpContext напрямую, не заключая его в свой собственный код:
Isolate.WhenCalled(()=> controller.HttpContext.Current.Session["UserID"]) .WillReturn("YourID");
Проверьте библиотеку WatiN и инструменты. Вы можете подделать тему IE.
Для этой цели я использую Phil Haack HttpSimulator:
http://haacked.com/archive/2007/06/19/unit-tests-web-code-without-a-web-server-using-httpsimulator.aspx
Если вы владеете этим кодом, не используйте HttpContext напрямую. Используйте некоторый интерфейс, который абстрагирует HttpContext. Затем замените реализацию этого интерфейса в модульных тестах.