C#:
Pisanie testów

Jak to zrobić:

Deweloperzy C# głównie używają frameworków NUnit lub xUnit do pisania testów ze względu na ich elastyczność i obszerny zestaw funkcjonalności. Oto podstawowy przykład użycia NUnit do testowania prostej funkcji dodawania:

  1. Zainstaluj NUnit i NUnit3TestAdapter poprzez menedżera pakietów NuGet lub interfejs wiersza poleceń .NET:
dotnet add package NUnit
dotnet add package NUnit3TestAdapter
  1. Utwórz projekt biblioteki klas C#, jeśli jeszcze tego nie zrobiłeś.

  2. Napisz prostą funkcję do testowania. Na przykład metodę dodawania w klasie o nazwie Calculator:

public class Calculator
{
    public int Add(int a, int b)
    {
        return a + b;
    }
}
  1. Napisz klasę testową używając NUnit:
using NUnit.Framework;

namespace CalculatorTests
{
    [TestFixture]
    public class CalculatorTests
    {
        [Test]
        public void Add_AddsTwoIntegers_ReturnsCorrectSum()
        {
            // Arrange
            var calculator = new Calculator();
            int expected = 5;

            // Act
            int actual = calculator.Add(2, 3);

            // Assert
            Assert.AreEqual(expected, actual);
        }
    }
}
  1. Uruchom test za pomocą test runnera twojego IDE lub interfejsu wiersza poleceń .NET:
dotnet test

Przykładowy wynik:

Zakładając, że twój test przeszedł pomyślnie, powinieneś zobaczyć wynik podobny do tego:

Test Run Successful.
Total tests: 1
     Passed: 1
 Total time: 1.2345 Seconds

Użycie xUnit:

Jeśli preferujesz xUnit, konfiguracja jest podobna do NUnit. Oto jak przepisać przykładowy test dla klasy Calculator używając xUnit:

  1. Zainstaluj xUnit i xUnit.runner.visualstudio:
dotnet add package xUnit
dotnet add package xUnit.runner.visualstudio
  1. Napisz klasę testową używając xUnit:
using Xunit;

namespace CalculatorTests
{
    public class CalculatorTests
    {
        [Fact]
        public void Add_AddsTwoIntegers_ReturnsCorrectSum()
        {
            // Arrange
            var calculator = new Calculator();
            int expected = 5;

            // Act
            int actual = calculator.Add(2, 3);

            // Assert
            Assert.Equal(expected, actual);
        }
    }
}
  1. Uruchom test za pomocą interfejsu wiersza poleceń .NET lub zintegrowanego test runnera twojego IDE.

Zarówno NUnit, jak i xUnit oferują potężne funkcje do testowania parametryzowanego, operacji ustawienia/zwolnienia zasobów i organizowania testów w kategorie, czyniąc je nieodzownymi narzędziami w zestawie programisty C# do zapewniania jakości kodu i jego funkcjonalności.