Ich habe eine Methode in meinem Web-API-Projekt und da es ziemlich einfach ist und es keine injizierte Abhängigkeit gibt und es sich um ein konkretes POSTed-Objekt handelt, bin ich nicht sicher, wie ich könnte einen Komponententest dafür erstellen. Gibt es etwas in der Gestaltung des folgenden Codes, den ich ändern könnte, um es testfreundlicher zu machen?Komponententest für eine Web-API-Methode ohne jegliche injizierte Abhängigkeit
public class HomeController : ApiController
{
public HttpResponseMessage Post(RootObject root)
{
HttpResponseMessage httpResponse;
return TryCreateResponse(root, out httpResponse) ? httpResponse : Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "An unhandled exception occurred on the server.");
}
private bool TryCreateResponse(RootObject root, out HttpResponseMessage httpResponse)
{
var success = false;
httpResponse = null;
try
{
var creator = (ModelState.IsValid)?
new OkResponseCreator(root) as IHttpResponseCreator:
new BadReqeuestResponseCreator(ApplicationSettings.HttpBadRequestErrorMessage);
var abstractHttpResponse = new ResponseContext(creator).CreateHttpResponse();
httpResponse = Request.CreateResponse(abstractHttpResponse.StatusCode, abstractHttpResponse);
success = true;
}
catch
{
success = false;
}
return success;
}
}
Ich würde versuchen, TryCreateResponse zu testen. –