TUnit – Новый Фреймворк Тестирования в .NET. Окончание
Начало
Особенности 1-3
Особенности 4-5
6. Нативный Fluent API
TUnit поддерживает цепочку fluent утверждений «из коробки», без необходимости установки каких-либо дополнительных пакетов или настройки.
[Test]
public async Task FluentAssertions()
{
var user = new { Name = "Alice",
Age = 30, Email = "alice@example.com" };
// Цепочка утверждений
await Assert.That(user.Name)
.IsNotNull()
.IsNotEmpty()
.StartsWith("Al");
// 'And' для логической группировки
await Assert.That(user.Age)
.IsGreaterThan(18)
.And.IsLessThan(65);
// Несколько утверждений в области
// (сообщение сразу о всех неудачах, а не о первой)
using var scope = Assert.Multiple();
await Assert.That(user.Name).IsEqualTo("Alice");
await Assert.That(user.Age).IsEqualTo(30);
await Assert.That(user.Email).IsNotNull();
}
7. Нативная поддержка внедрения зависимостей
Для использования внедрения зависимостей не требуется сложная настройка, TUnit поддерживает его «из коробки».
[Test]
public async Task WithDependencyInjection(
IUserService userService, ILogger logger)
{
var user = await userService.GetUserAsync(1);
logger.LogInformation($"Loaded user: {user.Name}");
await Assert.That(user).IsNotNull();
}
// Конфигурация через ServiceCollection
public void ConfigureServices(
IServiceCollection services)
{
services.AddScoped<IUserService, UserService>();
services.AddLogging();
}
Итого
Использовать ли TUnit?
TUnit - шаг вперёд в тестировании .NET. Существующие фреймворки остаются надёжными, стабильными и зрелыми, но они отражают проектные решения, принятые задолго до AOT, генераторов кода или современных ожиданий производительности.
TUnit стоит рассмотреть для новых проектов или оптимизации критически важных для производительности тестовых наборов, когда существующий тестовый набор становится узким местом в производительности или когда необходима поддержка AOT. Для устоявшихся кодовых баз со значительными инвестициями в тестирование существующий фреймворк, скорее всего, продолжит работать нормально, но вы всё равно можете попробовать TUnit и лично ощутить разницу.
Источник: https://trailheadtechnology.com/tunit-the-new-sheriff-in-town-for-net-testing/