.NET Framework 3.5 SP1 comes with System.Web.Abstractions.dll
For more information see: http://www.hanselman.com/blog/ASPNETMVCSessionAtMix08TDDAndMvcMockHelpers.aspx On Nov 17, 7:24 am, "John Teague" <[EMAIL PROTECTED]> wrote: > Take a look at some of the tests in MVCContrib. You need to mock out > Response, Request and a bunch of other stuff. It's not pretty but doable > > On Mon, Nov 17, 2008 at 9:01 AM, chiragkumar maisuriya < > > [EMAIL PROTECTED]> wrote: > > Hi Justin , > > > Can I use Unity from Codplex ? > > > Thanks & Regards, > > Chirag > > > On Mon, Nov 17, 2008 at 7:54 PM, Justin Chase <[EMAIL PROTECTED]>wrote: > > >> FYI, a quick list of IOC Containers: > > >>http://csharp-source.net/open-source/containers > > >> On Nov 17, 8:21 am, "Justin Chase" <[EMAIL PROTECTED]> wrote: > >> > I don't know if you can effectively mock the HttpContext. It's sealed > >> and > >> > has no interfaces... it's one massive side effect. I would recommend > >> > abstracting your use of it out to a custom class that wraps it and helps > >> you > >> > break direct dependencies on it. > > >> > One way I would recommend to do this is by using an IOC container and > >> > abstracting out the http context. So suppose all you want is the current > >> > User off of the HttpContext. Instead of directly referencing the context > >> > make an interface and class like this: > >> > public interface IHttpContext > >> > { > >> > IPrincipal User { get; } > > >> > } > > >> > public class HttpContextWrapper : IHttpContext > >> > { > >> > HttpContext _context; > >> > public HttpContextWrapper(HttpContext context) > >> > { > >> > _context = context; > >> > } > > >> > public IPrincipal User { get { return _context.User; } } > > >> > } > > >> > Now in your code that used to call the context to get the user do > >> something > >> > like this: > > >> > IHttpContext context = Container.Create<IHttpContext>(); > >> > IPrincipal user = context.User; > > >> > Now to register it in your real code, at app initialization: > > >> > Container.Register<IHttpContext>(() => return new > >> > HttpContextWrapper(HttpContext.Current)); > > >> > and using Rhino Mocks in your unit test library instead register it this > >> > way: > > >> > IHttpContext context = MockRepository.GenerateMock<IHttpContext>(); > >> > Container.Register<IHttpContext>(() => return context); > > >> > The exact syntax for the container is just psuedo code above, it depends > >> on > >> > the framework you're using but the concepts are generally the same. You > >> use > >> > the container as a factory method to break dependencies between types. > >> In > >> > the real app you register the real types in the test app you register > >> mock > >> > types. > > >> > On Mon, Nov 17, 2008 at 1:40 AM, chiragkumar maisuriya < > > >> > [EMAIL PROTECTED]> wrote: > > >> > > Hi Ayende, > > >> > >> I am working on Rhino Mocks and trying to mock out the HttpContext > >> for one > >> > >> of my Controller's Method using rhino Mocks but Finding a lot of > >> troubles > > >> > >> I am sending the my Method and Test Method. Please Suggest me some > >> way so > >> > >> that I can mock out HttpContext Object for Unit Test my method. > > >> > >> public override bool Execute(string moduleId, string actionId, > >> > >> HttpContext context) > > >> > >> { > > >> > >> switch (actionId) > > >> > >> { > > >> > >> case "Init": > > >> > >> LoadData(); > > >> > >> break; > > >> > >> default: > > >> > >> break; > > >> > >> } > > >> > >> dealerBulletinDetailsEntity.ActionId = actionId; > > >> > >> SetContext(dealerBulletinDetailsEntity, context); > > >> > >> SetContext(rulesEntity, context); > > >> > >> return RedirectUrl(moduleId, context); > > >> > >> } > > >> > >> Test Method > > >> > >> [ > >> > >> TestMethod()] > > >> > >> public void ExecuteTest() > > >> > >> { > > >> > >> PolicyRulesController target = new PolicyRulesController(); // TODO: > >> > >> Initialize to an appropriate value > > >> > >> string moduleId = string.Empty; // TODO: Initialize to an appropriate > >> > >> value > > >> > >> string actionId = string.Empty; // TODO: Initialize to an appropriate > >> > >> value > > >> > >> HttpContextBase context = > >> MockRepository.GenerateStub<HttpContextBase>(); > > >> > >> bool expected = false; // TODO: Initialize to an appropriate value > > >> > >> bool actual; > > >> > >> actual = target.Execute(moduleId, actionId, context); > > >> > >> Assert.AreEqual(expected, actual); > > >> > >> Assert.Inconclusive("Verify the correctness of this test method."); > > >> > >> } > > >> > >> Thanks & Regards, > > >> > >> Chirag > > >> > -- > >> > Justin Chasehttp://www.justnbusiness.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Rhino.Mocks" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/RhinoMocks?hl=en -~----------~----~----~----~------~----~------~--~---
