C# SessionID:单元测试上的NotImplementedException
我正在尝试为我的ASP.NETMVC项目创建单元测试,但面临一个很久以来一直无法解决的问题。在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 =
会话中,我总是得到未实现的异常
这是我的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;
}
}