私は、実行時に基本実装を呼び出し、応答の を に設定する、という非常に単純なViewResult
サブクラスを作成しています。このクラスの単体テストを試みているときに、ASP.NET MVC スタックのすべての依存関係を満たすために、多くの困難に直面しています。JavaScriptViewResult
Content-Type
text/javascript
これまでのところ、Rhino を使用する単体テストは次のようになります。
[TestMethod]
public void TestExecuteAction()
{
var request = MockRepository.GenerateMock<HttpRequestBase>();
request.Expect(m => m.Url).Return(new Uri("/Test/JavaScript", UriKind.Relative));
var httpContext = MockRepository.GenerateMock<HttpContextBase>();
httpContext.Expect(m => m.Request).Return(request);
var controller = MockRepository.GenerateMock<ControllerBase>();
var virtualPathProvider = MockRepository.GenerateMock<VirtualPathProvider>();
var routeCollection = new RouteCollection(virtualPathProvider);
routeCollection.MapRoute("FakeRoute", "Test/JavaScript", new { controller = "Test", action = "JavaScript" });
var routeData = routeCollection.GetRouteData(httpContext);
var context = new ControllerContext(httpContext, routeData, controller);
var viewResult = new JavaScriptViewResult();
viewResult.ExecuteResult(context);
Assert.AreEqual("text/javascript", context.HttpContext.Response.ContentType);
}
テスト実行時の最新の例外は、 のNullReferenceException
奥深くにありSystem.Web.Routing.Route.GetRouteData(HttpContextBase httpContext)
ます。
を実行するためのすべての依存関係を設定するにはどうすればよいViewResult
ですか? これを簡単にするためのテクニックはありますか?Content-Type
または、MVC ビュー エンジンを利用して、応答に適切な値を設定する JavaScript を生成する別の方法はありますか?