Когда я пытаюсь проверить услугу, которая работает с объектом, которая обладает зашифрованными свойствами, исключено:
Код: Выделить всё
Castle.MicroKernel.ComponentNotFoundException: 'No component for supporting the service MyApp.Configuration.IAppConfigurationAccessor was found'шифрование требует класса ключевых провале, который размещен в моем проекте .entityFrameWorkCore:
Код: Выделить всё
public class KeyProvider
{
private readonly IConfigurationRoot _appConfiguration;
public KeyProvider()
{
using (var scope = IocManager.Instance.CreateScope())
{
var configurationAccessor = scope.Resolve();
_appConfiguration = configurationAccessor.Configuration;
}
}
public byte[] GetKey()
{
return readFileContent(_appConfiguration["App:EncryptionKeyFile"]);
}
public byte[] GetMacKey()
{
return readFileContent(_appConfiguration["App:EncryptionMacKeyFile"]);
}
private byte[] readFileContent(string filePath)
{
return System.IO.File.ReadAllBytes(filePath);
}
}
Так что ясно , что KeyProvider не может разрешить ConfigurationAccessor. Это также показывает, когда в методе преинициализации моего тестирования басемодуля в моем проекте .test.base после конфигурации линии. Replaceservice (); Я устанавливаю проверку, чтобы увидеть, прошло ли регистрация: < /p>
Код: Выделить всё
using (var scope = IocManager.CreateScope())
{
try
{
var testConfigAccessor = scope.Resolve();
Console.WriteLine($"IAppConfigurationAccessor is successfully registered: {testConfigAccessor.GetType().FullName}");
}
catch (Exception ex)
{
Console.WriteLine($"Failed to resolve IAppConfigurationAccessor: {ex.Message}");
}
}
< /code>
В этом блоке кода брошено исключение. Не было обнаружено никакого компонента для поддержки сервиса myApp.configuration.iappconfigurationaccors. Итак, я поместил эту линию iocmanager.register (); Поначалу это работает, потому что теперь служба зарегистрирована, но теперь исключение добавлено в моем классе Apptestbase: < /p>
public abstract class AppTestBase : AbpIntegratedTestBase where T : AbpModule
{
protected AppTestBase()
{
SeedTestData();
LoginAsDefaultTenantAdmin();
}
< /code>
Исключение добавлено на линию защищенную apptestbase () < /code>.
Это исключение: < /p>
Castle.MicroKernel.ComponentRegistrationException: 'Component MyApp.Test.Base.TestAppConfigurationAccessor could not be registered. There is already a component with that name. Did you want to modify the existing component instead? If not, make sure you specify a unique name.'< /code> < /p>
На данный момент я потерян. Я не могу быть единственным модульным тестированием зашифрованных классов, могу ли я?
Подробнее здесь: https://stackoverflow.com/questions/794 ... basemodule
Мобильная версия