3 votes

ASP.Net MVC RC Unit Testing Requêtes Ajax

Nous venons de commencer à utiliser ASP.Net MVC Release Candidate et le projet de test que nous avons testait précédemment les requêtes Ajax avec MVC beta.

L'ancien code ressemblait à quelque chose comme ceci :

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;

L'appel à UpdateStatus utilise alors la méthode IsMvcAjaxRequest() sur l'objet de requête pour déterminer ce qu'il faut renvoyer au navigateur.

Dans ASP.Net MVC Release Candidate, la modification de Request.IsMvcAjaxRequest() en une méthode d'extension de Request.IsAjaxRequest() signifie que la façon dont nous simulons les en-têtes de requête est modifiée :

request.Expect(req => req["X-Requested-With"]).Returns("XMLHttpRequest");

J'espère que d'autres trouveront cela utile

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X