Sono nuovo di Mocking framework e ho iniziato a utilizzare RhinoMocks per assistere con i test dell'unità mobile di MVC.Come utilizzare Rhino Mock per simulare un HttpContext.Application
Sto usando Scott Hanselmanns MVC Mock Helper per aiutare a deridere HttpContext. Ho superato con successo (dopo un po 'di tempo) parte di ciò di cui ho bisogno, ma mi sono sbloccato quando si tratta della proprietà Application di HttpContext.
Nella mia applicazione devo conservare un oggetto nell'applicazione e recuperare entro un controller simile:
SomeObj foo = (SomeObj)Application["fooKey"];
Questo viene creato su Application Start nella mia MVC App.
aggiornato a seguito prima risposta (codice aggiuntivo per chiarezza) Attualmente nella configurazione di prova che faccio:
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);
Nella mia messa a punto di test di unità che faccio:
Globals tmpAppGlobals = new Globals();
controllerToTest.ControllerContext.HttpContext.
Expect(ctx => ctx.Application[Globals.GlobalsKey]).
Return(tmpAppGlobals);
Questa chiamata tiri un'eccezione NullReference, per l'oggetto Application.
La mia domanda è duplice:
1) È questo l'approccio giusto o ho fatto qualcosa di sbagliato dal punto di vista di design/architettura?
2) Perché questo non funziona ?!
Grazie, in anticipo.
Ho modificato la mia risposta; controllalo e vedi se funziona – Randolpho