То, что я бы сделал, было бы примерно так.
1 - статический класс (например: ContextFactory
), который предоставляет текущий httpcontext. Если он имеет HttpContext.Current, то предоставляет это значение, если нет, то он предоставляет назначенный контекст. В вашем случае new Mock<HttpContextBase>();
public static class ContextFactory
{
private static HttpContextBase current = null;
public static HttpContextBase Current
{
get { return current ?? HttpContext.Current; }
set { current = value; }
}
}
2- Затем я изменяю код UserSess на
public static class UserSess
{
public static UserID
{
get { return ContextFactory.Current.Session["UserID"]; }
set { ContextFactory.Current.Session["UserID"] = value; }
}
//...
}
искренно