私はMockingフレームワークが初めてで、RhinoMockを使用してMVCアプリケーションユニットテストを支援しました。Rhino Mocksを使用してHttpContext.Applicationをモックする方法
私はScott Hanselmanns MVC Mock Helperを使用して、HttpContextを嘲笑しています。 HttpContextのApplicationプロパティには、私が必要とするもののいくつかを嘲笑してしまいましたが、(しばらくして)うまくいきませんでした。私のアプリケーションで
私は、アプリケーション内のオブジェクトを保存などコントローラー以内にそれを取得:
SomeObj foo = (SomeObj)Application["fooKey"];
これは私のMVCアプリケーションでのApplication_Startに作成されます。この呼び出しはスロー
Globals tmpAppGlobals = new Globals();
controllerToTest.ControllerContext.HttpContext.
Expect(ctx => ctx.Application[Globals.GlobalsKey]).
Return(tmpAppGlobals);
:私は私のユニットテストのセットアップで
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);
:私はテスト・セットアップで現在FIRST ANSWER(わかりやすくするために追加のコード) を次の更新
ApplicationオブジェクトのNullReference例外。
私の質問です2倍:
1)、これは適切なアプローチや、私が設計/アーキテクチャの観点から、何か間違ったことをしましたか?
2)なぜこれが機能しないのですか?
ありがとうございます。
回答を編集しました。それを確認し、それが動作するかどうかを確認 – Randolpho