Soy nuevo en los frameworks de Mocking y he empezado a utilizar RhinoMocks para ayudar con mi MVC App Unit Testing.Cómo usar Rhino Mocks para simular una HttpContext.Application
Estoy usando Scott Hanselmanns MVC Mock Helper para ayudar a burlarse del HttpContext. He tenido éxito (después de un tiempo) burlado de algo de lo que necesito, pero me he deshecho de la propiedad de la aplicación HttpContext.
En mi aplicación almacenar un objeto en la aplicación y recuperarlo dentro de un controlador como:
SomeObj foo = (SomeObj)Application["fooKey"];
Esto se crea en Application_Start en mi aplicación MVC.
actualizados tras la primera respuesta (código adicional para mayor claridad) Actualmente en la configuración de la prueba que hago:
HttpContextBase mockHttpBase = mocks.FakeHttpContext();
controllerToTest = new SomeController();
mocks.SetFakeControllerContext(controllerToTest);
HttpApplicationStateBase appState =
MockRepository.GenerateStub<HttpApplicationStateBase>();
Globals tmpAppGlobals =
new Globals();
mockHttpBase.Expect(ctx => ctx.Application).Return(appState);
mockHttpBase.Expect(ctx => ctx.Application[Globals.GlobalsKey]).
Return(tmpAppGlobals);
En mi configuración de prueba de unidad que hago:
Globals tmpAppGlobals = new Globals();
controllerToTest.ControllerContext.HttpContext.
Expect(ctx => ctx.Application[Globals.GlobalsKey]).
Return(tmpAppGlobals);
Esta llamada tiros una Excepción de referencia nula para el objeto Aplicación.
Mi pregunta es doble:
1) ¿Es este el enfoque correcto o he hecho algo mal desde una perspectiva de diseño/arquitectura?
2) ¿Por qué esto no funciona ?!
Gracias, de antemano.
He editado mi respuesta; compruébelo y vea si funciona – Randolpho