2017-02-20 10 views
0

웹 API ASP.Net 코어에서 유닛 테스트 예외 필터를 만드는 법. onException 메서드를 조롱하고 싶지는 않습니다. 내 단위 테스트에서 아래와 같이 ControllerContext를 조롱했습니다. 웹 API에서 호출되는 클래스 라이브러리는 예외 필터에 의해 캐치되는 사용자 정의 예외를 throw하고 단위 테스트를 원합니다. 오늘 나는 "값이 예상되는 범위 내에 들지 않는다"라는 오류를 얻습니다.웹 API ASP.Net 코어의 단위 테스트 예외 필터 방법. oncept 메소드를 모의하고 싶지 않다.

public static ControllerContext GetMockControllerContext(
     this Controller controller, 
     RouteData routeData) 
    { 

     var actionContext = new ActionContext 
     { 
      HttpContext = new DefaultHttpContext 
      { 
       User = controller.GetMockUserContext() 
      }, 
      RouteData = routeData, 
      ActionDescriptor = new ControllerActionDescriptor() 
     }; 
     return new ControllerContext(actionContext); 
    } 

답변

2

documentation에 설명 된대로 TestServer를 사용하여 통합 테스트를 작성합니다. 실제 단위 테스트만큼 빠르게 실행되지만 실제 MVC 컨텍스트/파이프 라인 내에서 작동하는 필터를 보여주기 때문에 훨씬 더 가치가 있습니다.