gpt4 book ai didi

c# - 模拟 Controller 上下文 asp 4.5

转载 作者:太空宇宙 更新时间:2023-11-03 12:45:35 24 4
gpt4 key购买 nike

我必须模拟 Controller 上下文以测试一些已授权的方法。问题是虽然我尝试了 this它不起作用,因为当我输入时:

var mock = new Mock<ControllerContext>();

Visual Studio 在 ControllerContext 下划线并表示

The type or namespace could not be found

这些是我在单元测试类中包含的用法: 使用 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;

最佳答案

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

关于c# - 模拟 Controller 上下文 asp 4.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37432795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com