1

编写一些单元测试,但我没有找到一种方法来使用 mvc3、moq 和 mvccontrib 来最小化用户代理字符串。任何想法如何用 moq 和 mvccontrib 模拟用户代理字符串?

我一直在尝试这样做,但 useragent 属性是只读的。

 public static RouteController GetRouteController()
    {
        var controller = new RouteController();
        var builder = new TestControllerBuilder();

        builder.HttpContext.Request.UserAgent = "foo-agent";
        //mocks up the asp pipeline (http context, asp session, etc)
        builder.InitializeController(controller);


        return controller;
    }
4

1 回答 1

1

好的,找到了怎么做。只需要在请求上使用 rhinomocks 存根即可。这对我有用。

public static RouteController GetRouteController(string useragent)
        {
            var controller = new RouteController();
            var builder = new TestControllerBuilder();

            builder.InitializeController(controller);
            //mock out the useragent string
            controller.HttpContext.Request.Stub(r => r.UserAgent).Return(useragent);
            return controller;
        }

希望这对其他人有帮助。

于 2013-03-15T00:21:26.077 回答