aspnet zero — заменить IPermissionChecker для тестового модуля

Я создаю еще один тестовый модуль для службы приложений, использующей другой DbContext.

Есть ли способ обойти проверку разрешений для службы приложений в модульном тесте?

я пытался

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

в тестовом модуле PreInitialize(), но он все еще проверяет разрешения.

Пожалуйста помоги! Благодарю вас!


person siawkz    schedule 29.06.2017    source источник
comment
попробуйте IocManager.RegisterIfNot‹IPermissionChecker, NullPermissionChecker›(DependencyLifeStyle.Singleton);   -  person Alper Ebicoglu    schedule 30.06.2017


Ответы (1)


services.AddAbpIdentity снова заменяет IPermissionChecker. Вы можете использовать метод расширения AddPermissionChecker<NullPermissionChecker> после services.AddAbpIdentity.

Для AspNet Zero это внутри класса IdentityRegistrar. Пример (добавить последнюю строку):

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

Обратите внимание: вы, вероятно, захотите сделать это условным и применять только для модульных тестов.

person hikalkan    schedule 30.06.2017
comment
Спасибо! Я создал конфигурацию для модуля, чтобы сделать это условным. - person siawkz; 02.07.2017