Lis
8
NUnit je v současnosti nejpíš nejrozšířenější .NET framework pro testování jednotek. Nebo přinejmenším nejvyhledávanější, v Google Trends ostatní bezpečně válcuje.
Čím dál častěji různě narážím na zmínky buďto o xUnit.org, nebo o testech zabudovaných v týmové edici Visual Studia (MSTest). Na stránkách k xUnit.org jsem našel přehlednou srovnávací tabulku, kterou lze shrnout asi takhle:
- NUnit, MbUnit, MSTest: Třikrát to samé, pouze drobné
rozdíly v zápisu (
[Test]vs.[TestMethod]apod.). - xUnit.net: Některé věci dělá jinak, než je obvyklé.
Především:
- Pro každý test se vytváří nová instance testovací třídy. Z toho
vyplývá:
- Testy jsou lépe izolované.
- Žádné SetUp/TearDown metody. Testy lze inicializovat v konstruktoru a
uklidit případně v
IDisposable.Dispose.
- Testovací metodě se říká „fact“.
- Testovací třída nemusí být nijak označená. Stačí, že jsou označené testovací metody.
- Pro každý test se vytváří nová instance testovací třídy. Z toho
vyplývá:
xUnit.net je dost zajímavý
kousek softwaru. Co mu podle mě hodně schází, je Assert.That.
Tedy možnost například místo staromódního zápisu:
Assert.AreEqual(expected, actual);
Používat jiný zápis:
Assert.That(actual, Is.EqualTo(expected));
Tento zápis se víc blíží přirozenému jazyku (Věta „assert that actual is equal to expected“ docela dává smysl, ne?) a je docela návykový. Podle mě je otázkou času, kdy ho adoptuje i xUnit.net.
Související: Raroušův článek o xUnit.net
