C# SessionID:单元测试上的NotImplementedException

C# SessionID:单元测试上的NotImplementedException,c#,asp.net-mvc,moq,mstest,mvccontrib,C#,Asp.net Mvc,Moq,Mstest,Mvccontrib,我正在尝试为我的ASP.NETMVC项目创建单元测试,但面临一个很久以来一直无法解决的问题。在会话中,我总是得到未实现的异常 这是我的TestMethod: [TestMethod] public void CannAddCategory() { TestControllerBuilder controllerBuilder = new TestControllerBuilder(); this.Login(); HomeController controller =

我正在尝试为我的ASP.NETMVC项目创建单元测试,但面临一个很久以来一直无法解决的问题。在
会话中,我总是得到
未实现的异常

这是我的
TestMethod

[TestMethod]
public void CannAddCategory()
{
    TestControllerBuilder controllerBuilder = new TestControllerBuilder();

    this.Login();

    HomeController controller = new HomeController();
    controllerBuilder.InitializeController(controller);

    GetAllQuestionsFromInitialCategory(controller);
}
为了找出问题,我尝试调试该方法,但错误相同:

System.NotImplementedException: 'The method or operation is not implemented.'

我进一步查看了SO,其中有一些关于手动模拟会话的建议。这对我来说不太管用。错误依然存在

手动模拟会话:

var mock = new MockRepository();
var mockSession = mock.Stub<HttpSessionStateBase>();

controller.HttpContext.BackToRecord();
controller.HttpContext.Stub(c => c.Session).Return(mockSession);
controller.HttpContext.Replay()

显示控制器code@3dd添加了无法使用sessiondLib的方法。或者你用错了。请看第174行。。。
this.context = ContextSessionStore.GetInstance().GetQuestionnaireContext(Session.SessionID);
var mock = new MockRepository();
var mockSession = mock.Stub<HttpSessionStateBase>();

controller.HttpContext.BackToRecord();
controller.HttpContext.Stub(c => c.Session).Return(mockSession);
controller.HttpContext.Replay()
protected QuestionnaireContext Database
{
    get
    {
        if (Session == null)
        {
            this.context = new QuestionnaireContext();
            return this.context;
        }

        this.context = ContextSessionStore.GetInstance().GetQuestionnaireContext(Session.SessionID);
        return this.context;
    }

    private set
    {
        this.context = value;
    }
}