如何在.net core 2.0中模拟IAuthorizationService

时间:2017-10-25 01:09:41

标签: c# asp.net-core .net-core asp.net-core-2.0 .net-core-2.0

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

var result = await _authorizationService.AuthorizeAsync(User, document, operation);

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

我试过了:

_substituteAuthorizationService.AuthorizeAsync(Arg.Any<ClaimsPrincipal>(), null, Arg.Any<IEnumerable<IAuthorizationRequirement>>())
            .ReturnsForAnyArgs(new AuthorizationResult(......));

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

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:6)

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

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

AuthorizationResult.Success()
AuthorizationResult.Failed()