2013-03-14 92 views
1

写一些单元测试,并没有找到一种方法来moq出使用mvc3,moq和mvccontrib useragent字符串。任何想法如何嘲笑与moq和mvccontrib useragent字符串?mvc3 moq mvccontrib如何moq useragent?

我一直在做这个,但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; 
    } 

回答

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; 
     } 

希望这可以帮助别人。