0
web apiコントローラ用のHttpContextをモックしようとしていて、moqを使用していて、グーグルでウェブAPIコントローラに関する関連記事を取得できませんでした。MOQを使用したWeb APIのモックHttpContext
var context = new Mock<HttpContextBase>();
var request = new Mock<HttpRequestBase>();
var response = new Mock<HttpResponseBase>();
var session = new Mock<HttpSessionStateBase>();
var server = new Mock<HttpServerUtilityBase>();
context.Setup(c => c.Request).Returns(request.Object);
context.Setup(c => c.Response).Returns(response.Object);
context.Setup(c => c.Session).Returns(session.Object);
context.Setup(c => c.Server).Returns(server.Object);
return context.Object;
その方法は、MVCのために動作しますが、ウェブAPIの我々はMVCではなく、ウェブAPIにControllerContextにHttpContextBaseを渡すことができないので。
不完全なので、現在の状態の質問は不明です。 [ask]を読んで、あなたの問題をよりよく理解するために使用できる[mcve]を提供してください。 – Nkosi
また、あなたのコードを 'HttpContext'に強く結びつけるのを止めてください。これは、テスト困難な実装の問題です。コードを適切に構造化することで、この問題を回避できます。サードパーティの依存関係のように 'HttpContext'を扱います。 – Nkosi
つまり、外部依存関係として渡されることなく、Webアプリケーションのhttpcontextをモックする方法はありませんか? –