Testování v .NET
Tento článek představuje koncept testování a ukazuje, jak lze k ověření kódu použít různé druhy testů. K dispozici jsou různé nástroje pro testování aplikací .NET, jako jsou rozhraní příkazového řádku .NET CLI nebo integrované vývojové prostředí (ID).
Typy testů
Automatizované testy představují skvělý způsob, jak zajistit, aby kód aplikace udělal to, co jeho autoři mají v úmyslu. Tento článek popisuje testy jednotek, integrační testy a zátěžové testy.
Jednotkové testy
Jednotkový test je test, který testuje jednotlivé softwarové komponenty nebo metody, označované také jako "jednotka práce". Jednotkové testy by měly testovat pouze kód v rámci kontroly vývojáře. Netestují obavy o infrastruktuře. Mezi aspekty infrastruktury patří interakce s databázemi, systémy souborů a síťovými prostředky.
Další informace o vytváření jednotkových testů viz téma Testovací nástroje.
Integrační testy
Integrační test se liší od jednotkového testu tím, že prověřuje schopnost dvou nebo více softwarových komponent fungovat společně, také známé jako jejich "integrace". Tyto testy pracují s širším spektrem systému, který se testuje, zatímco jednotkové testy se zaměřují na jednotlivé komponenty. Integrační testy často zahrnují obavy o infrastrukturu.
Zátěžové testy
Cílem zátěžového testu je určit, zda systém dokáže zpracovat zadané zatížení. Například počet souběžných uživatelů používajících aplikaci a schopnost aplikace reagovat na interakce. Další informace o zátěžovém/stresovém testování webových aplikací v ASP.NET Core naleznete v části .
Aspekty testování
Mějte na paměti, že existují osvědčené postupy pro psaní testů. Například TDD (Test Driven Development) je, když napíšete test jednotek před kódem, který se má zkontrolovat. TDD je jako vytvoření osnovy pro knihu před tím, než ji napíšete. Test jednotek pomáhá vývojářům psát jednodušší, čitelný a efektivní kód.
Testovací nástroje
Při spouštění testů v .NET jsou součástí dvě komponenty: testovací platforma a testovací architektura.
Testovací platformy
Testovací platforma je modul, který spouští testy a funguje jako komunikační kanál s prostředími IDEs. Visual Studio může například odeslat požadavek na zjišťování na testovací platformu, aby mohl zobrazit dostupné testy v Průzkumníku testů. Testovací platforma reaguje zpět na integrované vývojové prostředí (IDE) s nalezenými testy. Podobná komunikace probíhá při provádění testů.
VSTest se v .NET používá už mnoho let a byl jedinou testovací platformou v ekosystému. Na začátku roku 2024 byla vydána první stabilní verze nové testovací platformy s názvem Microsoft.Testing.Platform (MTP).
Testovací architektury
Testovací rámec je postavený na testovací platformě. Definuje sadu atributů a rozhraní API, která jsou pro vás k dispozici jako testovací autor. Obvykle je poháněn testovacím adaptérem, který funguje jako komunikační vrstva mezi testovací architekturou a testovací platformou. Oblíbené testovací architektury jsou MSTest, NUnit, TUnit a xUnit.net.
MSTest
MSTest je testovací rozhraní Microsoftu pro všechny jazyky .NET. Je rozšiřitelný a funguje s rozhraním .NET CLI, sadou Visual Studio, editorem Visual Studio Code a Riderem. Podporuje VSTest i Microsoft.Testing.Platform.
Další informace najdete v následujících zdrojích informací:
- Podpora Microsoft.Testing.Platform v MSTest (MSTest runner)
- testování částí pomocí jazyka C#
- testování jednotek pomocí jazyka F#
- Jednotkové testování pomocí jazyka Visual Basic
NUnit
NUnit je rozhraní pro testování jednotek pro všechny jazyky .NET. NUnit byl zpočátku portován z JUnit a aktuální produkční verze byla přepsána s mnoha novými funkcemi a podporou pro širokou škálu platforem .NET. Jedná se o projekt .NET Foundation . Podporuje VSTest i Microsoft.Testing.Platform.
Další informace najdete v následujících zdrojích informací:
- Podpora Microsoft.Testing.Platform v NUnit (NUnit runner)
- testování částí pomocí jazyka C#
- Jednotkové testování pomocí jazyka F#
- testování částí pomocí jazyka Visual Basic
TUnit
TUnit je zcela postaven na platformě Microsoft.Testing.Platform a nepodporuje VSTest. Další informace najdete v dokumentaci k jednotce TUnit.
xUnit.net
xUnit.net je bezplatný opensourcový nástroj pro testování jednotek zaměřený na komunitu pro .NET. Původní vynálezce NUnit v2 napsal xUnit.net. xUnit.net je nejnovější technologie pro testování částí aplikací .NET. Funguje také s ReSharperem, CodeRush a TestDriven.NET. xUnit.net je projektem .NET Foundation a funguje v rámci svého pravidla chování. Podporuje VSTest i Microsoft.Testing.Platform.
Další informace najdete v následujících zdrojích informací:
- Podpora Microsoft.Testing.Platform v xUnit.net v3
- Jednotkové testování v jazyce C#
- Testování jednotek pomocí F#
- Jednotkové testování v jazyce Visual Basic
Spouštění testů
.NET CLI
Testy jednotek můžete spouštět ze všech testovacích projektů v řešení pomocí .NET CLI pomocí příkazu dotnet test. Rozhraní příkazového řádku .NET zpřístupňuje většinu funkcí, které integrovaná vývojová prostředí (IDE) zpřístupňují prostřednictvím uživatelských rozhraní. .NET CLI je multiplatformní a je k dispozici jako součást kanálů kontinuální integrace a doručování. Rozhraní příkazového řádku .NET se používá se skriptovanými procesy k automatizaci běžných úloh.
IDE
Bez ohledu na to, jestli používáte Visual Studio, Visual Studio Code nebo Rider, existují grafická uživatelská rozhraní pro testování funkcí. Pro IDE je k dispozici více funkcí než pro rozhraní příkazového řádku, například Live Unit Testing. Další informace naleznete v tématu Zahrnutí a vyloučení testů pomocí sady Visual Studio.
Viz také
Další informace najdete v následujících článcích:
- Osvědčené postupy testování jednotek s využitím rozhraní .NET
- testy integrace v ASP.NET Core
- Spouštění selektivních testů jednotek
- Použijte pokrytí kódu pro jednotkové testování