Мы только начали использовать ASP.Net MVC Release Candidate, и тестовый проект, который у нас есть, ранее тестировал запросы Ajax с помощью бета-версии MVC.
Старый код выглядел примерно так:
Mock<HttpRequestBase> request = new Mock<HttpRequestBase>();
Mock<HttpResponseBase> response = new Mock<HttpResponseBase>();
Mock<HttpContextBase> context = new Mock<HttpContextBase>();
context.Expect(c => c.Request).Returns(request.Object);
context.Expect(c => c.Response).Returns(response.Object);
request.Expect(req => req["__MVCASYNCPOST"]).Returns("true");
MyController controller = new MyController();
controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller);
ViewResult result = controller.UpdateStatus() as ViewResult;
Затем вызов UpdateStatus будет использовать метод IsMvcAjaxRequest () для объекта запроса, чтобы определить, что вернуть в браузер.
Замена в ASP.Net MVC Release Candidate на Request.IsMvcAjaxRequest () метода расширения Request.IsAjaxRequest () означает, что способ имитации заголовков запроса изменен на:
request.Expect(req => req["X-Requested-With"]).Returns("XMLHttpRequest");
Я надеюсь, что другие сочтут это полезным