2

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

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

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

没有可用的 UserGet 属性

真正让我感到困惑的是,MS Fakes 能够为除“用户”属性之外的所有其他属性生成吸气剂。我在这里错过了什么吗?

4

1 回答 1

2
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;
于 2013-05-15T18:47:11.110 回答