c# - 使用 Microsoft Fakes 模拟 HttpContextBase - UserGet 属性丢失

标签 c# asp.net-mvc unit-testing mocking

我目前正在尝试利用 Microsoft Fakes Framework 编写一些单元测试。对于特定的单元测试,我必须模拟 Controller.User 属性。因此,我为 System.Web 添加了一个假程序集,并创建了一个 System.Fakes.StubHttpContextBase 的新实例:

var stubHttpContext = new System.Web.Fakes.StubHttpContextBase();

在下一步中,我想设置 User 属性的返回值。我希望在我的 StubHttpContextBase 实例上找到一个“UserGet”属性,但没有成功:

No UserGet property available

真正让我困惑的是,MS Fakes 能够为除“User”属性之外的所有其他属性生成 getter。我在这里遗漏了什么吗?

最佳答案

var child = new StubHttpContextBase();
var basecontext=  new ShimHttpContextBase(child) 
    {
        UserGet= () =>   
            new GenericPrincipal(new GenericIdentity("mhu"), new string[0]) 
    };

var conCntx = new ControllerContext();
conCntx.HttpContext = basecontext;
controllerUnderTest.ControllerContext = conCntx;

关于c# - 使用 Microsoft Fakes 模拟 HttpContextBase - UserGet 属性丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14139089/

相关文章:

asp.net-mvc - 是否可以使用 ASP.NET MVC 创建登录系统但不使用成员资格提供程序?

asp.net-mvc - ValidationMessageFor 一直返回错误

javascript - 使用 JavaScript 和 MVC 重定向到 Controller

android - android.test.AndroidTestCase 中的方法 setUp 未被模拟

c# - 在 C# 程序中无法连接到使用 Docker 启动的 RabbitMQ(使用 RabbitMQ.Client)

c# - C# 中的开源 Torrent 客户端

c# - 如何在 C# 中中断 Gurobi 模型优化?

c# - 如何删除因意外双击按钮而生成的函数?

unit-testing - grails 2.5.5单元测试中的java8日期

unit-testing - 测试 Spark : how to create a clean environment for each test