模拟控制器上下文 asp 4.5
Mocking a cotroller context asp 4.5
我必须模拟控制器上下文才能测试一些已授权的方法。问题是虽然我尝试 this 但它不起作用,因为当我输入时:
var mock = new Mock<ControllerContext>();
Visual Studio 下划线 ControllerContext
表示
The type or namespace could not be found
这些是我在单元测试中包含的用法 class:
使用 Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Web;
using System.Collections.Generic;
using Moq;
using System.Web.Http.Controllers;
using Data.Contracts;
using System.Linq;
using Web.Api.Controllers;
关于如何在 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;
无法将 System.Web.Mvc.ControllerContext
转换为 System.Web.Http.Controllers.ControllerContext
> controller.ControllerContext = mock.Objectt;
ControllerContext 是 System.Web.Mvc.dll
中 System.Web.Mvc
的一部分。只需添加对它的引用
我必须模拟控制器上下文才能测试一些已授权的方法。问题是虽然我尝试 this 但它不起作用,因为当我输入时:
var mock = new Mock<ControllerContext>();
Visual Studio 下划线 ControllerContext
表示
The type or namespace could not be found
这些是我在单元测试中包含的用法 class: 使用 Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Web;
using System.Collections.Generic;
using Moq;
using System.Web.Http.Controllers;
using Data.Contracts;
using System.Linq;
using Web.Api.Controllers;
关于如何在 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;
无法将 System.Web.Mvc.ControllerContext
转换为 System.Web.Http.Controllers.ControllerContext
> controller.ControllerContext = mock.Objectt;
ControllerContext 是 System.Web.Mvc.dll
中 System.Web.Mvc
的一部分。只需添加对它的引用