C#: ForbidAsync와 같은 HttpContext 메서드를 조롱하는 방법은 무엇입니까?
3781 단어 csharphttpcontextmock
이러한 메서드는 확장 메서드이므로 실제로 어떤 메서드를 조롱할지 알아야 합니다.
단위 테스트
이것은 "ForbidAsync"를 테스트하는 데 사용하는 코드입니다.
Mock<IAuthenticationService> mockedIAuthenticationService = new();
mockedIAuthenticationService
.Setup(x => x.ForbidAsync(It.IsAny<HttpContext>(), It.IsAny<string>(), It.IsAny<AuthenticationProperties>()))
.Returns(Task.FromResult((object)true));
Mock<IServiceProvider> mockedIServiceProvider = new();
mockedIServiceProvider
.Setup(x => x.GetService(typeof(IAuthenticationService)))
.Returns(mockedIAuthenticationService.Object);
Mock<HttpContext> mockedHttpContext = new Mock<HttpContext>();
mockedHttpContext.Setup(x => x.RequestServices).Returns(mockedIServiceProvider.Object);
그거 어디서 났어?
AuthenticationHttpContextExtensions은 context.RequestServices.GetService<IAuthenticationService>()
를 통해 얻은 IAuthenticationService에서 가져온 것임을 나타냅니다.
따라서 IServiceProvider와 IServiceProvider를 조롱하기만 하면 됩니다.
이것이 나중에 다시 도움이 되기를 바랍니다.
Reference
이 문제에 관하여(C#: ForbidAsync와 같은 HttpContext 메서드를 조롱하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/kenakamu/c-how-to-mock-httpcontext-methods-such-as-forbidasync-42kh
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Mock<IAuthenticationService> mockedIAuthenticationService = new();
mockedIAuthenticationService
.Setup(x => x.ForbidAsync(It.IsAny<HttpContext>(), It.IsAny<string>(), It.IsAny<AuthenticationProperties>()))
.Returns(Task.FromResult((object)true));
Mock<IServiceProvider> mockedIServiceProvider = new();
mockedIServiceProvider
.Setup(x => x.GetService(typeof(IAuthenticationService)))
.Returns(mockedIAuthenticationService.Object);
Mock<HttpContext> mockedHttpContext = new Mock<HttpContext>();
mockedHttpContext.Setup(x => x.RequestServices).Returns(mockedIServiceProvider.Object);
AuthenticationHttpContextExtensions은
context.RequestServices.GetService<IAuthenticationService>()
를 통해 얻은 IAuthenticationService에서 가져온 것임을 나타냅니다.따라서 IServiceProvider와 IServiceProvider를 조롱하기만 하면 됩니다.
이것이 나중에 다시 도움이 되기를 바랍니다.
Reference
이 문제에 관하여(C#: ForbidAsync와 같은 HttpContext 메서드를 조롱하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kenakamu/c-how-to-mock-httpcontext-methods-such-as-forbidasync-42kh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)