首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模拟ControllerContext找不到引用

模拟ControllerContext找不到引用
EN

Stack Overflow用户
提问于 2016-05-25 10:49:14
回答 1查看 1.8K关注 0票数 0

这个问题是由于this问题而出现的。我做了以下事情:

我通过嵌入Mvc包修正了引用。但是,现在当我尝试以下错误时,会收到以下错误:

代码语言:javascript
复制
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

代码语言:javascript
复制
> controller.ControllerContext = mock.Object;

任何使用System.Web.Http.Controllers.HttpControllerContext;的想法在我的测试项目中都是不可用的。

EN

回答 1

Stack Overflow用户

发布于 2016-05-25 12:55:42

您正在使用错误的包和错误的命名空间。

在我看来,您需要模拟System.Web.Http.Controllers.ControllerContext,但您提供的是System.Web.Mvc.ControllerContext的一个模拟实例--不是Web类,而是ASP.NET MVC类。

该做什么:

  1. 确保已将Web包安装到您的单元测试项目中: Install-Package Microsoft.AspNet.WebApi
  2. 从您的单元测试项目中删除MVC程序集的任何引用(当然,只有在不需要测试MVC组件的情况下才能这样做)
  3. 确保在单元测试类中导入正确的名称空间(而不是MVC名称空间): using System.Web.Http.Controllers;

请注意,即使类名相同,MVC组件和Web组件也是不可互换的。始终验证您在项目中使用的是正确的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37434854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档