Comment simuler la méthode d’extension CreateResponse sur HttpRequestMessage

J’utilise ApiController d’ASP.Net MVC 4 RC et j’essaie de tester une méthode Get.

Cette méthode utilise la méthode CreateResponse qui se trouve sur le HttpRequestMessage, mais je ne sais pas comment y remédier ou la faire fonctionner correctement.

Le corps de la méthode contient ceci:

MediaTypeHeaderValue header = new MediaTypeHeaderValue(versionedSmartBlock.ContentType); var response = Request.CreateResponse(HttpStatusCode.OK, versionedSmartBlock, header); 

Dans mon test unitaire, je crée un HttpRequestMessage vide:

 CallsController api = new CallsController(managerMock.Object, config, adapterFactoryMock.Object); api.Request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Initiate?ern=%2B44123456789"); var response = api.Get("+44123456789", null); 

Mais il ne fait que générer une InvalidOperationException:

La demande n’a pas d’object de configuration associé ou la configuration fournie était nulle.

Quelqu’un at-il des conseils sur la façon dont je peux configurer le HttpRequestMessage pour que la méthode CreateResponse fasse réellement son travail?

Cela a été résolu en spécifiant une configuration vide:

 request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration()); 

J’ai la réponse à ça d’ici

Test d’unité ASP.NET WebApi avec Request.CreateResponse

WebAPI 1 avec VB ici!

J’ai réussi à hybrider les réponses de votre lien ci-dessus pour que cela fonctionne aussi simplement:

 Dim request As HttpRequestMessage = New HttpRequestMessage() Return request.CreateResponse(HttpStatusCode.BadRequest, myCustomClassObject, GlobalConfiguration.Configuration) 

Il suffit de poster au cas où cela aiderait quelqu’un.