Próbuję użyć N-UNIT, aby przetestować moją aplikację web API, ale nie jestem w stanie znaleźć odpowiedniego sposobu na przetestowanie mojej metody przesyłania plików. Jakie byłoby najlepsze podejście do testowania tej metody?Testowanie interfejsu ASP.NET Web API Multipart Form danych Przesyłanie pliku
Web API Kontroler:
[AcceptVerbs("post")]
public async Task<HttpResponseMessage> Validate()
{
// Check if the request contains multipart/form-data.
if (!Request.Content.IsMimeMultipartContent())
{
return Request.CreateErrorResponse(HttpStatusCode.UnsupportedMediaType,"please submit a valid request");
}
var provider = new MultipartMemoryStreamProvider(); // this loads the file into memory for later on processing
try
{
await Request.Content.ReadAsMultipartAsync(provider);
var resp = new HttpResponseMessage(HttpStatusCode.OK);
foreach (var item in provider.Contents)
{
if (item.Headers.ContentDisposition.FileName != null)
{
Stream stream = item.ReadAsStreamAsync().Result;
// do some stuff and return response
resp.Content = new StringContent(result, Encoding.UTF8, "application/xml"); //text/plain "application/xml"
return resp;
}
}
return resp;
}
catch (System.Exception e)
{
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
}
}
dlaczego nie używać HttpClient z System.Net.Http? –
Nie sądzę, że HttpClient ma plik przesyłania zaprojektowany specjalnie do przesyłania plików. – Muhammad