C# 在asp 4.5上下文中模拟一个cotroller

C# 在asp 4.5上下文中模拟一个cotroller,c#,unit-testing,model-view-controller,asp.net-web-api,moq,C#,Unit Testing,Model View Controller,Asp.net Web Api,Moq,为了测试一些被授权的方法,我必须模拟控制器上下文。问题是,虽然我尝试了,但它不起作用,因为当我键入: var mock = new Mock<ControllerContext>(); 任何关于如何在MSDN文档中包含ControllerContext的想法,他们说它是System.Web的一部分,但它似乎不起作用。另外,如果有另一种方法来模拟上下文而不使用它,那将是非常棒的 我通过装入Mvc包修复了引用。但现在我尝试此操作时收到以下错误: var mock = new Mock&

为了测试一些被授权的方法,我必须模拟控制器上下文。问题是,虽然我尝试了,但它不起作用,因为当我键入:

var mock = new Mock<ControllerContext>();
任何关于如何在MSDN文档中包含
ControllerContext
的想法,他们说它是System.Web的一部分,但它似乎不起作用。另外,如果有另一种方法来模拟上下文而不使用它,那将是非常棒的

我通过装入Mvc包修复了引用。但现在我尝试此操作时收到以下错误:

var mock = new Mock<ControllerContext>();
            mock.SetupGet(x => x.HttpContext.User.Identity.Name).Returns("SOMEUSER");
            mock.SetupGet(x => x.HttpContext.Request.IsAuthenticated).Returns(true);
            controller.ControllerContext = mock.Object; 

t是
System.Web.Mvc.dll
System.Web.Mvc
的一部分。只需添加对它的引用

尝试使用System.Web.Http.Controllers删除;并使用System.Web.MvcStill中的ControllerContext无法工作。请尝试设置显式命名空间
new Mock()同样,当前命名空间错误中不存在。如果答案完全回答了初始问题,则用户应接受该答案,从而结束此帖子。任何其他问题都应在新问题中解决。尽量避免被诱饵所吸引,改变现状。
var mock = new Mock<ControllerContext>();
            mock.SetupGet(x => x.HttpContext.User.Identity.Name).Returns("SOMEUSER");
            mock.SetupGet(x => x.HttpContext.Request.IsAuthenticated).Returns(true);
            controller.ControllerContext = mock.Object; 
> controller.ControllerContext = mock.Objectt;