>source

MOQ QuickStart 정의의 마지막 섹션에 따라 여기, 테스트중인 컨트롤러 메소드에 양식 값을 전달하기 위해 다음 모의를 구성하려고합니다.

var formCollection= new FormCollection(
                new System.Collections.Generic.Dictionary<string, Microsoft.Extensions.Primitives.StringValues>()
            {
                    {"mAction", "someAction" },
                    {"mRefId", "0" }
            });
        var controllerContext= Mock.Of<ControllerContext>(ctx=>            ctx.HttpContext.Request.Form== formCollection);
        controller.ControllerContext= controllerContext;

그러나 테스트를 실행하면 실패합니다.mock.of < >다음 오류가있는 라인 :

system.notsupportedException : 지원되지 않는 표현식 : mock= > mock.httpContext.

비 -무시할 수있는 멤버 (여기서 : actionContext.get_httpContext)는 설정 /검증 표현식에서 사용되지 않을 수 있습니다.

누락 된 것입니까? QuickStart 문서에서 정의 된 예에 따라 동일하지 않습니까?

controllercontext.httpContext 속성은 가상이 아닙니다. 그래서 모의가 무시할 수 없습니다.

Nkosi2021-04-15 15:54:14
  • 이전 java : 문제에 대한 모든 분야의 모든 분야를 정렬하는 mockito가 일정합니다
  • 다음 php : 날짜별로 개체 배열을 정렬합니다