XUnit používam už dosť dlho a je to môj výberový rámec pre testovanie jednotiek. Je to nástroj na testovanie jednotiek s otvoreným zdrojom pre .Net framework, ktorý je kompatibilný s ReSharper, CodeRush, TestDriven.Net a Xamarin. Môžete využiť xUnit.Net na ľahké uplatnenie typu výnimky. Môžete tiež rozšíriť atribúty Fakt alebo Teória v xUnit.Net a poskytuje vynikajúcu podporu pre zápis parametrizovaných jednotkových testov. Tu je odkaz na úložisko Github pre xUnit.Net.
Tu je príklad, ako pracovať s xUnit.net v Visual Studio. Na túto ukážku budeme používať Visual Studio 2015, aj keď môžete pracovať aj s inými kompatibilnými verziami Visual Studio. Teraz postupujte podľa týchto jednoduchých krokov a nastavte svoje prostredie na prácu s xUnit.Net v Visual Studio.
- Otvorte Visual Studio 2015 UDE
- Vytvorte nový projekt typu „Knižnica tried“
- Uložte projekt s názvom
- Ďalej nainštalujte xUnit.Net prostredníctvom správcu balíkov NuGet
A je to! Ak chcete spustiť testy jednotiek v rámci Visual Studio IDE, môžete použiť xUnit.net runner pre Visual Studio. Tu je potrebné uviesť, čo potrebujete na inštaláciu balíka xUnit.net [Runner: Visual Studio] pomocou okna konzoly Správca balíkov:
Inštalačný balík xunit.runner.visualstudio - verzia 2.1.0
To je všetko, čo budete potrebovať na nastavenie prostredia, aby ste mohli vykonávať testy jednotiek xUnit.Net z prostredia Visual Studio IDE.
Fakty a teórie
Na rozdiel od populárneho atribútu [Test], ktorý by ste mohli poznať, na napísanie metód testovania jednotiek pomocou xUnit.net budete musieť použiť atribút [Fact]. Upozorňujeme, že web xUnit.net podporuje dva typy testov jednotiek: fakty a teórie.
Aj keď sa na testovanie invariantných podmienok používajú fakty, teórie sú testami, ktoré sú pravdivé pre konkrétny súbor údajov odovzdaných ako argument tejto metóde. Atribút [Fact] by ste zvyčajne používali na zápis jednotkových testov, ktoré neobsahujú argumenty metódy.
Atribút [Theory] však vyžaduje, aby sa ako argumenty metódy odovzdali jedna alebo viac inštancií DataAttribute. V zásade by ste chceli použiť atribút [Theory] na zápis dátových jednotkových testov. Testy jednotiek riadené dátami sú testy, ktoré sa vykonávajú na rôznych množinách dát.
Za predpokladu, že je nainštalovaný xUnit.Net a jeho bežec pre Visual Studio, poďme najskôr napísať jednoduchý test jednotky pomocou atribútu [Fact]. Zvážte nasledujúcu metódu testovania jednotiek - tu využijeme výhodu atribútu [Fact].
[Skutočnosť]
public void CheckEqualityTest ()
{
Assert.Equal (10, súčet (5, 5));
}
Metóda Sum akceptuje dve celé čísla a vráti ich súčet.
private int Sum (int x, int y)
{
návrat x + y;
}
Keď spustíte tento test, prejde test jednotky - môžete to vidieť v Prieskumníkovi testov Windows vo vašom Visual Studio IDE. Poďme teraz preskúmať, ako môžeme pracovať s teóriami na vykonávanie jednotkových testov, ktoré sú riadené údajmi.
Nasledujúci úryvok kódu ilustruje, ako môžete pracovať s testami jednotiek riadenými údajmi pomocou xUnit.Net.
[Theory, InlineData ("This is a data driven test", "data")]
public void CheckInputTest (vstup reťazca, reťazec reťazca)
{
Assert.Equal (true, input.Contains (podreťazec));
}
Prečítajte si útržok kódu uvedený vyššie. Všimnite si použitie atribútu [Theory]. Pokiaľ vaše jednotkové testy nie sú založené na údajoch, mali by ste sa vo svojich metódach jednotkového testu rozhodnúť pre atribút [Fact]. Všimnite si, ako boli parametre odovzdané v testovacej metóde jednotky riadenej dátami s názvom CheckInput. Atribút InlineData poskytuje údaje o zdrojovom kóde. V tomto príklade sa údaje odovzdávajú jednotkovej testovacej metóde prostredníctvom vložených hodnôt. Môžete mať aj viac atribútov InlineData - stačí ich oddeliť čiarkou. Tu je príklad, ako to môžete dosiahnuť.
[Theory, InlineData („This is a data driven test“, „data“),
InlineData („Toto je ďalšia množina údajov pre test riadený údajmi“, „údaje“)]
public void CheckInputTest (vstup reťazca, reťazec reťazca)
{
Assert.Equal (true, input.Contains (podreťazec));
}
Keď vykonáte vyššie uvedený test riadený údajmi, metóda CheckInputTest by sa vykonala dvakrát - raz pre každú sadu vstupných údajov.