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.
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:
—
xUnit rozlišuje dva hlavní typy testů:
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);
}
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);
}
—
xUnit používá statickou třídu `Assert`. Mezi nejpoužívanější metody patří:
—
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.
—
| 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]` |
—
xUnit je plně integrován do:
Související články:
Tagy: programming dot-net testing xunit unit-test csharp