Довідники C# xUnit

Що таке xUnit в C#?

xUnit — це фреймворк для написання та запуску автоматичних тестів у мові програмування C#. Він надає простий, але потужний інтерфейс для створення тестових наборів, перевірки умов та автоматичного виявлення та запуску тестів. Ось основні поняття та приклад використання xUnit:


Основні поняття:

  1. Факт (Fact): У xUnit тести представлені як факти. Факт — це метод, позначений атрибутом [Fact], який перевіряє затвердження та повідомляє про його успішне або невдале виконання.
  2. Тестовий клас (Test Class): Факти об'єднуються у тестові класи. Тестовий клас — це клас, що містить методи-факти, і позначений атрибутом [TestClass].
  3. Твердження (Assertion): Для перевірки результатів тесту використовуються затвердження. xUnit надає різноманітні методи затвердження, такі як Assert.Equal, Assert.True та ін.
// Приклад тестового класу за допомогою xUnit
public class CalculatorTests
{
    [Fact]
    public void Add_TwoNumbers_ReturnsSum()
    {
        // Привласнення
        Calculator calculator = new Calculator();

        // Дія
        int result = calculator.Add(3, 4);

        // Перевірка
        Assert.Equal(7, result);
    }

    [Fact]
    public void Divide_DivisionByZero_ThrowsException()
    {
        // Привласнення
        Calculator calculator = new Calculator();

        // Дія та перевірка
        Assert.Throws<DivideByZeroException>(() => calculator.Divide(5, 0));
    }
}

// Приклад простого класу, що тестується
public class Calculator
{
    public int Add(int a, int b)
    {
        return a + b;
    }

    public int Divide(int numerator, int denominator)
    {
        if (denominator == 0)
            throw new DivideByZeroException("Denominator cannot be zero.");
        
        return numerator / denominator;
    }
}
Коментарі (1)
Додати коментар

Gistrose 25 квітня 2025 в 18:00

А як запобігти обходу теста? Наприклад, якщо ми повертаємо не a+b, а вже готовий результат із юніт тесту return 7; ???
Відповісти