ASP.NET MVC 단위 테스트에서 HttpContext.Current 모킹 마스터하기
ASP.NET MVC의 효과적인 단위 테스트를 위해서는 컨트롤러와 라이브러리 동작을 분리해야 하며 HttpContext
개체의 정확한 시뮬레이션이 필요합니다. 이 글에서는 테스트 초기화 방법HttpContext.Current
내에서 모의
FakeControllerContext
과 같은 도우미 클래스를 사용하는 것과 같은 전통적인 방법에서는 컨트롤러에 대한 모의 HttpContext
을 설정합니다. 그러나 이 접근 방식은 외부 라이브러리도 Init
에 액세스할 수 있는 HttpContext.Current
메서드까지 모의 범위를 확장하지 못하여 부족한 경우가 많습니다.
최적의 솔루션은 HttpContext.Current
및 IPrincipal
객체를 대체하여 IIdentity
을 직접 조작합니다. 이렇게 하면 컨트롤러와 Init
메서드 중에 호출되는 모든 라이브러리, 심지어 콘솔 애플리케이션 내에서도 일관된 모의가 보장됩니다. 다음 코드 조각은 이를 보여줍니다.
<code class="language-csharp">HttpContext.Current = new HttpContext( new HttpRequest("", "http://tempuri.org", ""), new HttpResponse(new StringWriter()) ); // Simulate a logged-in user HttpContext.Current.User = new GenericPrincipal( new GenericIdentity("username"), new string[0] ); // Simulate a logged-out user HttpContext.Current.User = new GenericPrincipal( new GenericIdentity(String.Empty), new string[0] );</code>
이러한 직접 조작은 테스트 환경에 대한 포괄적인 제어를 제공하여 HttpContext
.
위 내용은 ASP.NET MVC 단위 테스트에서 HttpContext.Current를 효과적으로 모의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!