나는 간단한 게시물을 테스트하는 단위입니다.단위 테스트 ASP.NET 웹 API
ControllerContext와 HttpContext를 조롱하는 대안이 있습니까?
업데이트 :
public HttpResponseMessage<Document> PostDocument(Document document,Uri location = null)
{
document = repository.Add(document);
var response = new HttpResponseMessage<Document>(document, HttpStatusCode.Created);
if (location == null)
{
var uri = Url.Route(null, new { id = document.Id });
location = new Uri(Request.RequestUri, uri);
}
response.Headers.Location = location;
return response;
}
업데이트 2 :
가 그것을 변경
이것은 더 나은 : 당신은이 때문에 Request
속성, 설정 가능해야한다
public HttpResponseMessage<Document> PostDocument(Document document)
{
var uri = Url.Route(null, new { id = document.Id });
var location = new Uri(Request.RequestUri, uri);
return PostDocument(document, location);
}
[NonAction]
public HttpResponseMessage<Document> PostDocument(Document document, Uri location)
{
document = repository.Add(document);
var response = new HttpResponseMessage<Document>(document, HttpStatusCode.Created);
response.Headers.Location = location;
return response;
}
관련 : http://stackoverflow.com/questions/10042290/sample-code-for-unit-testing-api-controllers/22200520#22200520 –