MVCアプリケーションでいくつかのテストを実行しようとしていますが、問題が発生しています。私は右のポイントを取得しようとするでしょう:HttpApplication/HttpContextを模擬する方法
私はこのような何かしようとするRhinoMocksを使用しています:
セットアップ:
public static HttpContextBase FakeHttpContext(this MockRepository mocks)
{
HttpApplication app = mocks.PartialMock<HttpApplication>();
HttpContextBase context = mocks.PartialMock<HttpContextBase>();
HttpRequestBase request = mocks.PartialMock<HttpRequestBase>();
HttpResponseBase response = mocks.PartialMock<HttpResponseBase>();
HttpSessionStateBase session = mocks.PartialMock<HttpSessionStateBase>();
HttpServerUtilityBase server = mocks.PartialMock<HttpServerUtilityBase>();
SetupResult.For(context.ApplicationInstance).Return(app);
SetupResult.For(context.Request).Return(request);
SetupResult.For(context.Response).Return(response);
SetupResult.For(context.Session).Return(session);
SetupResult.For(context.Server).Return(server);
mocks.Replay(context);
return context;
}
:
MockRepository mocks = new MockRepository();
HttpContextBase _mockContext = mocks.FakeHttpContext();
mocks.SetFakeControllerContext(new LoginController());
HttpApplicationStateBase appState = MockRepository.GenerateStub<HttpApplicationStateBase>();
_mockContext.Expect(mc => mc.Application).Return(appState);
HttpContext.Current = _mockContext.ApplicationInstance.Context;
をここでFakeHttpContext()
方法です
私は本当にHttpContextBase.Request.AppRelativeCurrentExecutionFilePath
にアクセスする必要がありますが、それはいつもnull
として返されます。 HttpContext.Current.Request.RequestContext
も同様です。
誰でも私をここで助けることができますか?この時点で私は絶望的だと言っても間違いない。
ます問題が何であるか教えてください。あなたはエラーを受け取りますか(どちらですか?)私が見る限り、特定のセットアップ 'Setup(c => c.Request。AppRelativeCurrentExecutionFilePath) 'は、' Request'が 'virtual'プロパティ' AppRelativeCurrentExecutionFilePath'を持つ型の 'virtual'プロパティであるために動作します。 '_mockContext.SetupAllProperties();'と言った理由は?他の*プロパティも同様に設定したいと思っていますか? –
@JeppeStigNielsen私は今使っているもので質問を更新しました。私はまだそれを働かせることはできません。 – Kehlan