Snippet:   
var request = new SimpleWorkerRequest("/dummy", @"c:\inetpub\wwwroot\dummy", "dummy.html", null, new StringWriter());
var context = new HttpContext(request);
SessionStateUtility.AddHttpSessionStateToContext(context, new TestSession());
HttpContext.Current = context;
Implementation of TestSession():    
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.SessionState;
namespace m1k4.Framework.Test
{
    public class TestSession : IHttpSessionState
    {
        private Dictionary<string, object> state = new Dictionary<string, object>();
        #region IHttpSessionState Members
        public void Abandon()
        {
            throw new NotImplementedException();
        }
        public void Add(string name, object value)
        {
            this.state.Add(name, value);
        }
        public void Clear()
        {
            throw new NotImplementedException();
        }
        public int CodePage
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }
        public System.Web.HttpCookieMode CookieMode
        {
            get
            {
                throw new NotImplementedException();
            }
        }
        public void CopyTo(Array array, int index)
        {
            throw new NotImplementedException();
        }
        public int Count
        {
            get
            {
                throw new NotImplementedException();
            }
        }
        public System.Collections.IEnumerator GetEnumerator()
        {
            throw new NotImplementedException();
        }
        public bool IsCookieless
        {
            get
            {
                throw new NotImplementedException();
            }
        }
        public bool IsNewSession
        {
            get
            {
                throw new NotImplementedException();
            }
        }
        public bool IsReadOnly
        {
            get
            {
                throw new NotImplementedException();
            }
        }
        public bool IsSynchronized
        {
            get
            {
                throw new NotImplementedException();
            }
        }
        public System.Collections.Specialized.NameObjectCollectionBase.KeysCollection Keys
        {
            get
            {
                throw new NotImplementedException();
            }
        }
        public int LCID
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }
        public SessionStateMode Mode
        {
            get
            {
                throw new NotImplementedException();
            }
        }
        public void Remove(string name)
        {
            this.state.Remove(name);
        }
        public void RemoveAll()
        {
            this.state = new Dictionary<string, object>();
        }
        public void RemoveAt(int index)
        {
            throw new NotImplementedException();
        }
        public string SessionID
        {
            get
            {
                return "Test Session";
            }
        }
        public System.Web.HttpStaticObjectsCollection StaticObjects
        {
            get
            {
                throw new NotImplementedException();
            }
        }
        public object SyncRoot
        {
            get
            {
                throw new NotImplementedException();
            }
        }
        public int Timeout
        {
            get
            {
                return 10;
            }
            set
            {
                throw new NotImplementedException();
            }
        }
        public object this[int index]
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }
        public object this[string name]
        {
            get
            {
                return this.state[name];
            }
            set
            {
                this.state[name] = value;
            }
        }
        #endregion
    }
}