如何在.net core 2.0中模拟IAuthorizationService

Nee*_*ack 5 c# .net-core asp.net-core asp.net-core-2.0 .net-core-2.0

我在我的控制器中使用此资源授权:

var result = await _authorizationService.AuthorizeAsync(User, document, operation);
Run Code Online (Sandbox Code Playgroud)

我需要测试我的控制器,我需要授权才能通过测试.

我试过了:

_substituteAuthorizationService.AuthorizeAsync(Arg.Any<ClaimsPrincipal>(), null, Arg.Any<IEnumerable<IAuthorizationRequirement>>())
            .ReturnsForAnyArgs(new AuthorizationResult(......));
Run Code Online (Sandbox Code Playgroud)

但我不能新建一个AuthorizationResult,因为它没有公共构造函数.

有任何想法吗?谢谢!

Jas*_*sen 6

这里没有太多细节https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.authorization.authorizationresult?view=aspnetcore-2.0

但是你可以从静态方法返回

AuthorizationResult.Success()
AuthorizationResult.Failed()
Run Code Online (Sandbox Code Playgroud)