ASP.NET 개발에서도 단위 테스트를 원합니다.

개요



.Net Core(최근 1.0이 릴리스 되었군요)보다 옛날의 ASP.NET는, IIS와 쭉 손을 잡고 있어, 스태틱인 오브젝트가 가득 있습니다.

그런 정적 객체를 사용하면 유닛 테스트를 작성할 수 없습니다 (쓰더라도 미끄러짐).

그것을 어떻게 해야 하는가 이 기사입니다.

HttpContext



요청이나 응답이 들어있는 중요한 가짜 객체입니다.

HttpContextBase라는 추상 클래스가 있지만, HttpContext는 이것을 상속하지 않습니다.

HttpContext 솔루션



HttpContextBase와 HttpContextWrapper를 사용합시다.

Injectee.vb
Public Sub New (httpContext As HttpContextBase)

Injector.vb
New Injectee(New HttpContextWrapper(HttpContext.Current))


FormsAuthentication



Form 인증으로 했을 때 사용하는 사람입니다.

FormsAuthentication 솔루션



준비되어 있는 래퍼는 없으므로, 자전으로 랩퍼를 준비합시다.

IAuthenticationWrapper.vb
Public Interface IAuthenticationWrapper
    Sub SetAuthentication(userName As String, isPersistent As Boolean)
End Interface

AuthenticationWrapper.vb
Public Class AuthenticationWrapper
    IAuthenticationWrapper

    Sub SetAuthentication(userName As String, isPersistent As Boolean) Implements IAuthenticationWrapper.SetAuthentication
        FormsAuthentication.SetCookeiAuthentication(userName, isPersistent)
    End Sub
End Class


요약



ASP.NET에서 단위 테스트를 원할 때,

어쨌든 랩퍼! !

좋은 웹페이지 즐겨찾기