ASP.NET 일반 처리기에 대한 단위 테스트 사례를 만들어야합니다. 내 처리기 코드는 다음과 같습니다.단위 테스트 HttpWebRequest를 사용하지 않는 ASP.NET 일반 처리기
public class MyHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");
var data = context.Request.InputStream;
//Here logic read the context.Request.InputStream
//All the data will be posted to this Stream
//Calling of business logic layer Methods
}
public bool IsReusable
{
get
{
return false;
}
}
}
이제이 Handler에 대한 Unit 테스트 케이스를 만들어야합니다. 단위 테스트 사례를 수행하는 방법을 다음과 같이 시도했습니다.
- 이 핸들에
HttpWebRequest
을 만들고 모든 데이터를 요청 스트림에 기록합니다. 나는 모든 핸들러를 테스트하기 위해HttpWebRequest
을 만드는 별도의 툴을 가지고 있으므로이 단계를 진행하고 싶지 않다. - 비즈니스 메소드에 대한 유닛 테스트 케이스를 생성하고 있지만 이것에서 핸들러 레벨로 작성된 로직을 확인할 수 없다.
나는 HttpContext를 모의하려했지만, 이것을 조롱하는 것은 허용되지 않습니다 (HttpContent를 모방 할 수 있습니까?). 나는
this 방법을 시도했지만이 또한 내 처리기에 대한 수정이 필요하지만이 작업을 수행 할 준비가되지 않았습니다.
마지막으로 내 질문은, 단위 테스트 처리기에 다른 방법이 있습니까?
미리 감사드립니다.
처럼 당신이 연결된 매우 일반적인 방법을 사용하여 문서를 호출을 사용하여 테스트 할 수 있습니다. 앱에 실제로 접근 할 수있는 방법이 아닙니까? –
@IanGilroy - 답장을 보내 주셔서 감사합니다. 이런 식으로 처리기를 수정하여 새로운 오버로드 된 ProcessRequest를 추가해야합니다. 내 프로젝트에는 거의 100 개 이상의 핸들러가 포함되어 있습니다.이 모든 작업을 편집하려면 시간이 필요합니다. 실제 핸들러를 수정하지 않아도되는 다른 솔루션을 찾고 있습니다. – Mohan