.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
-~----------~----~----~----~------~----~------~--~---

Reply via email to