Я не верю, что простого макетирования HttpSession достаточно, чтобы заставить сеанс в вашем методе принять смоделированное поведение.Вам нужен способ внедрить эту зависимость.
Вы можете изменить дизайн своей функции так, чтобы она воспринимала объект сеанса как параметр.Это сделало бы ваш метод тестируемым
Например
public bool IsValidEmployee(string email, string password, HttpSessionStateBase session)
{
bool valid = false;
var employee = dataAccess.GetEmployee(email, password);
if(employee! = null)
{
valid = true;
session["Employee"] = employee;
}
return valid;
}
Кроме того, вы могли бы создать "SessionManager", который мог бы подразумевать ISessionManager, который обернул бы весь ваш доступ к состоянию сеанса и обошел бы его, делая егоеще более поддается проверке, таким образом, отделяя ответственность за то, как и где сохранять состояние сеанса, от проверки работника.