aspnet 零 - 为测试模块替换 IPermissionChecker

aspnet zero - replace IPermissionChecker for Test Module

我正在为使用不同 DbContext 的应用程序服务创建另一个测试模块。

有什么方法可以绕过单元测试中应用服务的权限检查吗?

我试过了

Configuration.ReplaceService<IPermissionChecker, NullPermissionChecker>(DependencyLifeStyle.Transient);

在测试模块 PreInitialize() 中,但它仍在检查权限。

请帮忙!谢谢!

services.AddAbpIdentity 再次替换 IPermissionChecker。 services.AddAbpIdentity后可以使用AddPermissionChecker<NullPermissionChecker>扩展方法。

对于 AspNet Zero,它在 IdentityRegistrar class 内。示例(添加最后一行):

services.AddAbpIdentity<Tenant, User, Role>(options =>
    {
        ...
    })
    ...
    .AddPermissionChecker<NullPermissionChecker>();

请注意:您可能希望将此设置为有条件的并且仅适用于单元测试。