Найти в Дзене
invalid_token - The signature key was not found. ASP.NET Core 8, Minimal API
Собственно, в процессе написания автотестов с WebApplicationFactory наткнулся на такую ошибку (см. заголовок). Для тестирования вызовов с авторизацией использовал собственную генерацию токенов JWT: public static class MockJwtTokens { public const string StaticIssuer = "MockIssuer"; public static string Issuer { get; } = StaticIssuer; //Guid.NewGuid().ToString(); // Random issuer public static SecurityKey SecurityKey { get; } static MockJwtTokens() { var key = new byte[32]; using (var rng = RandomNumberGenerator...
2 недели назад
.NET Core 8, Azure DevOps, и System.InvalidOperationException : Solution root could not be located using application root
И вот бывает же такое. Пилим тесты с использованием WebApplicationFactory... Который уже проект, все примерно одинаково, все идет нормально... И тут, внезапно, ровно один проект начинает выдавать ошибку - но не просто так, а только при исполнении из pipeline Azure DevOps. Ошибка - на старте factory, System.InvalidOperationException : Solution root could not be located using application root. Ошибка, которую давным давно, еще с 6 .NET Core должны были, вроде как, побороть. А тут у нас .NET Core 8, причем соседний похожий проект в этом же solution исполняется вообще без проблем. Да, я прочитал документацию...
2 месяца назад
.NET Core 8, Minimal API и JSON Options
В общем, вопрос был в том, как задать опции сериализации / десериализации для Minimal API. Для контроллеров это делаю так: builder.Services.AddControllers(options => { .... }).AddJsonOptions(options => { // Убираем Camel-case style форматирования в JSON options.JsonSerializerOptions.PropertyNamingPolicy = null; }); А вот для Minimal API делаем так: builder.Services.ConfigureHttpJsonOptions(options => { // Убираем Camel-case style форматирования в JSON options...
2 месяца назад
WebApplicationFactory, AutoMapper, и доступ к активной конфигурации
В общем-то, задача простая, но на всякий случай, запишу для памяти. Итак, есть у нас интеграционный тест с xUnit и WebApplicationFactory. Но при этом нужно: 1) Получить лицензионный ключ AutoMapper, который сконфигурирован на проверяемом сервисе 2) Проверить стороннюю (не используемую на сервисе) конфигурацию AutoMapper Код у меня получился такой: // Arrange IConfiguration configuration = _factory.Services.GetRequiredService<IConfiguration>(); string? storedLicenseKey = configuration["AutoMapperLicenseKey"]; if (string.IsNullOrEmpty(storedLicenseKey)) throw new Exception("Не найден ключ лицензии AutoMapper"); using var scope = _factory...
2 месяца назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала