c# - 如何在 .net core 2.0 中模拟 IAuthorizationService

标签 c# asp.net-core .net-core nsubstitute

我在我的 Controller 中使用这个资源授权:

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

我需要测试我的 Controller ,我需要授权才能通过测试。

我试过:

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

但我无法新建 AuthorizationResult,因为它没有公共(public)构造函数。

有什么想法吗?谢谢!

最佳答案

这里不多说了https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.authorization.authorizationresult?view=aspnetcore-2.0

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

AuthorizationResult.Success()
AuthorizationResult.Failed()

关于c# - 如何在 .net core 2.0 中模拟 IAuthorizationService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46922341/

相关文章:

c# - Net Core 集成测试 : Run Startup. cs 和来自其他程序的配置

git - 在 Bitbucket 管道中增加一个数字

c# - 为什么我在 UITableView 中有一个空的(但有效的)表索引带?

c# - 在 Windows Phone 中滚动到达末尾时将项目添加到列表框?

c# - 实现 IEqualityComparer 会修改相等性测试结果吗?

c# - 全局应用 IgnoreAntiforgeryTokenAttribute 不会禁用 ValidateAntiForgeryToken

F# 中的 C# 扩展方法

C# Auto Property - 这是 'pattern' 最佳实践吗?

c# - 如何在 asp.net core 中从 JWT 检索 ClaimsPrincipal

c# - 在 Visual Studio 2017 中设置默认的 C# 构建语言版本