Я пытаюсь выяснить, как выполнить модульное тестирование моего объекта, который сохраняется в состоянии сеанса.
Контроллер делает что-то вроде ...
[HttpPost]
public ActionResult Update(Account a)
{
SessionManager sm = SessionManager.FromSessionState(HttpContext.Current.Session);
if ( a.equals(sm.Account) )
sm.Account = a;
return View("View", a);
}
И менеджер сеансов сериализует себя в состояние сеанса
public class SessionManager
{
public static SessionManager FromSessionState(HttpSessionStateBase state)
{
return state["sessionmanager"] as SessionManager ?? new SessionManager();
}
public Guid Id { get; set; }
public Account Account { get; set; }
public BusinessAssociate BusinessAssociate {get; set; }
}
Я думаю, что есть два подходак модульному тестированию ...
в статическом инстанциаторе передать ссылку на состояние сеанса и затем восстановить из нее.это позволило бы мне смоделировать этот параметр, и все было бы замечательно.
public static SessionManager FromSessionState (HttpSessionStateWrapper session) {возврат сеанса ["sessionmanager"] как SessionManager ??новый SessionManager ();}
создать макет для SessionManager и использовать его для тестирования контроллера.