Ответ
В проектах на C# я чаще всего использую фреймворки NUnit или xUnit. Их встроенные классы Assert предоставляют все необходимые методы для проверки условий. Вот ключевые из них с примерами:
- Проверка равенства:
Assert.AreEqual(NUnit) илиAssert.Equal(xUnit).// NUnit Assert.AreEqual(expectedValue, actualValue); // xUnit Assert.Equal(expectedValue, actualValue); - Проверка истинности/ложности:
Assert.IsTrue/Assert.IsFalse.Assert.IsTrue(result.IsSuccessful); - Проверка исключений:
Assert.Throws.var exception = Assert.Throws<InvalidOperationException>(() => service.PerformInvalidAction()); Assert.AreEqual("Expected error message", exception.Message); - Проверка на null:
Assert.IsNull/Assert.IsNotNull. - Проверка коллекций:
Assert.Containsдля проверки наличия элемента.
Для повышения читаемости тестов я часто применяю библиотеку Fluent Assertions. Она позволяет писать проверки в более естественном, цепочечном стиле:
actualResult.Should()
.Be(expectedResult)
.And.BeGreaterThan(0)
.And.NotBeNull();
Выбор между встроенным Assert и Fluent Assertions зависит от стандартов команды и требований к читаемости кода.