这个问题是由于this问题而出现的。我做了以下事情:
我通过嵌入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; 无法将System.Web.Mvc.ControllerContext转换为System.Web.Http.Controllers.ControllerContext
> controller.ControllerContext = mock.Object;任何使用System.Web.Http.Controllers.HttpControllerContext;的想法在我的测试项目中都是不可用的。
发布于 2016-05-25 12:55:42
您正在使用错误的包和错误的命名空间。
在我看来,您需要模拟System.Web.Http.Controllers.ControllerContext,但您提供的是System.Web.Mvc.ControllerContext的一个模拟实例--不是Web类,而是ASP.NET MVC类。
该做什么:
Install-Package Microsoft.AspNet.WebApiusing System.Web.Http.Controllers;请注意,即使类名相同,MVC组件和Web组件也是不可互换的。始终验证您在项目中使用的是正确的。
https://stackoverflow.com/questions/37434854
复制相似问题