Start Debugging

Тег: testing

8 статей

Лучшая идея нового агента модульных тестов для .NET не в написании тестов
2026-07-31 Microsoft выпустила полиглотного агента модульных тестов в dotnet/skills. Самое интересное в нём: обязательная проверка, которая применяет псевдомутацию к вашим утверждениям, прежде чем агент имеет право сказать, что работа закончена.
Как тестировать зависящий от времени код с TimeProvider и FakeTimeProvider в .NET 11
Замените DateTime.UtcNow, Stopwatch и Task.Delay на System.TimeProvider, чтобы тесты управляли часами: регистрация во внедрении зависимостей, FakeTimeProvider.Advance и SetUtcNow, тестирование таймаутов и BackgroundService на PeriodicTimer, а также подводные камни с продолжениями после Advance и с xUnit v2.
Как писать интеграционные тесты с WebApplicationFactory<T> в ASP.NET Core 11
Полное руководство по WebApplicationFactory<TEntryPoint> в ASP.NET Core 11: как сделать точку входа Program доступной, ConfigureTestServices против ConfigureWebHost, замена регистрации EF Core через IDbContextOptionsConfiguration, новый хук ConfigureHostApplicationBuilder в .NET 11 preview 6, подделка аутентификации, WebApplicationFactoryClientOptions и UseKestrel, когда нужен настоящий порт.
Как писать интеграционные тесты против настоящего SQL Server с помощью Testcontainers
Полное руководство по запуску интеграционных тестов ASP.NET Core против настоящего SQL Server 2022 с использованием Testcontainers 4.11 и EF Core 11: настройка WebApplicationFactory, IAsyncLifetime, подмена регистрации DbContext, применение миграций, параллелизм, очистка через Ryuk и подводные камни CI.
VSTest отказывается от Newtonsoft.Json в .NET 11 Preview 4 и что сломается, если вы полагались на него транзитивно
.NET 11 Preview 4 и Visual Studio 18.8 поставляют VSTest, который больше не протаскивает Newtonsoft.Json в ваши тестовые проекты. Сборки, тихо использовавшие транзитивную копию, сломаются, и чинятся одной строкой PackageReference.
Как мокать DbContext, не ломая отслеживание изменений
Прямое мокание DbContext незаметно ломает ChangeTracker, поэтому Microsoft не рекомендует так делать. Это руководство показывает два паттерна, которые действительно работают в EF Core 11: SQLite в памяти с удерживаемым открытым соединением, чтобы запускался настоящий ChangeTracker, и паттерн репозитория, полностью убирающий EF Core из теста.