Obsah

xUnit.net Framework

xUnit.net je moderní testovací nástroj pro platformu .NET, navržený s důrazem na čistotu kódu, rozšiřitelnost a soulad s moderními programovacími praktikami. Jeho autory jsou James Newkirk (původní autor NUnit) a Brad Wilson.

1. Hlavní filozofie xUnit

Na rozdíl od starších frameworků přináší xUnit několik zásadních změn, které vedou k lepším testovacím návykům:

2. Základní atributy a syntaxe

xUnit rozlišuje dva hlavní typy testů:

[Fact]

Používá se pro testy, které jsou vždy pravdivé (nemají žádné parametry).

[Fact]
public void Je_Sude_Cislo_Vraci_True() {
    // Arrange
    int cislo = 4;
    // Act & Assert
    Assert.True(cislo % 2 == 0);
}

[Theory]

Používá se pro data-driven testy (testy s parametry). To umožňuje spustit stejný test s různými vstupními daty.

[Theory]
[InlineData(4, true)]
[InlineData(5, false)]
public void Test_Sudosti(int cislo, bool ocekavanyVysledek) {
    bool vysledek = (cislo % 2 == 0);
    Assert.Equal(ocekavanyVysledek, vysledek);
}

3. Assertace (Ověřování)

xUnit používá statickou třídu `Assert`. Mezi nejpoužívanější metody patří:

4. Sdílení kontextu (Fixtures)

Pokud potřebujete sdílet nákladnou operaci (např. připojení k databázi) mezi více testy, xUnit k tomu nabízí mechanismus Class Fixtures:

1. Vytvoříte třídu `DatabaseFixture`.
2. Testovací třída implementuje rozhraní `IClassFixture<DatabaseFixture>`.
3. Framework předá instanci fixture do konstruktoru testovací třídy.

5. Srovnání s NUnit a MSTest

Funkce xUnit NUnit MSTest
Značka testu `[Fact]` `[Test]` `[TestMethod]`
Příprava (Setup) Konstruktor `[SetUp]` `[TestInitialize]`
Izolace Nová instance pro každý test Stejná instance Stejná instance
Parametrické testy `[Theory]` `[TestCase]` `[DataTestMethod]`

6. Integrace v IDE

xUnit je plně integrován do:


Související články:

Tagy: programming dot-net testing xunit unit-test csharp