Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 31285|Odpověď: 3

[Zdroj] .NET/C# používá jednotkové testy Xunit

[Kopírovat odkaz]
Zveřejněno 22.01.2019 14:58:26 | | | |
Momentálně jsem ve hře. Testovací nástroje v rámci Net frameworku zahrnují především Nunit, vestavěný MSTest a Xunit, a tento článek stručně představí, jak používat XUnit, rostoucí hvězdu ve VS.

Minimální doba běhu podporovaná xunit je . NET 4.5.2, z nichž většina je vyšší. I když dokážete vytvořit knihovnu tříd 4.0, bude fungovat alespoň na .NET 4.5.2. Podrobné odkazy:https://github.com/xunit/xunit/issues/1817


Nejprve jsem vytvořil nový .NET 4.5.2 konzolový projekt s názvy: itsvse-test a nejnovější verze xunit je: 2.4.1, takže příkaz nuget je následující:

Každý balíček je vám licencován svým vlastníkem. NuGet nenese odpovědnost za balíčky třetích stran a nelicencuje je. Některé balíčky mohou obsahovat závislosti, které podléhají jiným licencím. Klikněte na URL zdrojového zdroje balíčku pro určení případných závislostí.

Správce balíčků konzolová hostská verze 4.7.0.5212

Zadejte "get-help NuGet" a zobrazí se všechny dostupné příkazy NuGet.

PM> Install-Package xunit -Version 2.4.1


Probíhají pokusy o sběr a cílení ". NETFramework, Version=v4.5.2" projektu "itsvse-test" o balíčku "xunit.2.4.1"
Získání informací o závislostech trvá 2,1 sekundy
Snažím se vyřešit závislost balíčku "xunit.2.4.1" s DependencyBehavior jako "Lowest"
Parsování informací o závislostech trvá 0 ms
Operace parsování pro instalaci balíčku "xunit.2.4.1"
Vyřešena operace instalace balíčku "xunit.2.4.1"
Získat balíček "xunit 2.4.1" z "cnblogs"
Získejte balíček "xunit.abstractions 2.0.3" z "cnblogs"
Získejte balíček "xunit.analyzers 0.10.0" z "cnblogs"
Získat balíček "xunit.assert 2.4.1" z "cnblogs"
Získejte balíček "xunit.core 2.4.1" z "cnblogs"
Získat balíček "xunit.extensibility.core 2.4.1" z "cnblogs"
Získat balíček "xunit.extensibility.execution 2.4.1" z "cnblogs"
  DOSTAThttps://api.nuget.org/v3-flatcon ... 1/xunit.2.4.1.nupkg
  DOSTAThttps://api.nuget.org/v3-flatcon ... actions.2.0.3.nupkg
  DOSTAThttps://api.nuget.org/v3-flatcon ... it.core.2.4.1.nupkg
  DOSTAThttps://api.nuget.org/v3-flatcon ... .assert.2.4.1.nupkg
  DOSTAThttps://api.nuget.org/v3-flatcon ... ty.core.2.4.1.nupkg
  DOSTAThttps://api.nuget.org/v3-flatcon ... ecution.2.4.1.nupkg
  DOSTAThttps://api.nuget.org/v3-flatcon ... lyzers.0.10.0.nupkg
  OKhttps://api.nuget.org/v3-flatcon ... actions.2.0.3.nupkg116 ms
  OKhttps://api.nuget.org/v3-flatcon ... 1/xunit.2.4.1.nupkg117 ms
Instalace xunit.abstractions 2.0.3.
Instalace xunit 2.4.1.
  OKhttps://api.nuget.org/v3-flatcon ... it.core.2.4.1.nupkg151 ms
Instalace xunit.core 2.4.1.
  OKhttps://api.nuget.org/v3-flatcon ... .assert.2.4.1.nupkg167 ms
Instalace xunit.assert 2.4.1.
  OKhttps://api.nuget.org/v3-flatcon ... ty.core.2.4.1.nupkg221 ms
Instalace xunit.extensibility.core 2.4.1.
  OKhttps://api.nuget.org/v3-flatcon ... lyzers.0.10.0.nupkg200 ms
Instalace xunit.analyzers 0.10.0.
  OKhttps://api.nuget.org/v3-flatcon ... ecution.2.4.1.nupkg306 ms
Instalace xunit.extensibility.execution 2.4.1.
Přidání balíčku "xunit.abstractions.2.0.3" do složky "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Balíček "xunit.abstractions.2.0.3" byl přidán do složky "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Přidán balíček "xunit.abstractions.2.0.3" do "packages.config"
Úspěšně nainstalován "xunit.abstractions 2.0.3" do itsvse-test
Přidání balíčku pouze toolsetu "xunit.analyzers.0.10.0" do "itsvse-test"
Přidání balíčku "xunit.analyzers.0.10.0" do složky "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Do složky "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" byl přidán balíček "xunit.analyzers.0.10.0"
Přidán balíček "xunit.analyzers.0.10.0" do "packages.config"
Skriptový soubor "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages\xunit.analyzers.0.10.0\tools\install.ps1"
"xunit.analyzers 0.10.0" byl úspěšně nainstalován na itsvse-test
Přidání balíčku "xunit.assert.2.4.1" do složky "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Do složky "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" byl přidán balíček "xunit.assert.2.4.1"
Přidán balíček "xunit.assert.2.4.1" do "packages.config"
"xunit.assert 2.4.1" byl úspěšně nainstalován do itsvse-test
Přidání balíčku "xunit.extensibility.core.2.4.1" do složky "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Do složky "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" byl přidán balíček "xunit.extensibility.core.2.4.1"
Přidán balíček "xunit.extensibility.core.2.4.1" do "packages.config"
"xunit.extensibility.core 2.4.1" byl úspěšně nainstalován do ITSVSE-Test
Přidání balíčku "xunit.extensibility.execution.2.4.1" do složky "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Do složky "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" byl přidán balíček "xunit.extensibility.execution.2.4.1"
Přidán balíček "xunit.extensibility.execution.2.4.1" do "packages.config"
"xunit.extensibility.execution 2.4.1" byl úspěšně nainstalován do ITSVSE-Test
Přidání balíčku "xunit.core.2.4.1" do složky "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Balíček "xunit.core.2.4.1" byl přidán do složky "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Přidán balíček "xunit.core.2.4.1" do "packages.config"
"xunit.core 2.4.1" byl úspěšně nainstalován do ITSVSE-testu
Přidání balíčku "xunit.2.4.1" pouze s dependenciemi pro projekci "itsvse-test".
Balíček "xunit.2.4.1" je přidáván do složky "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Do složky "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" byl přidán balíček "xunit.2.4.1"
Balíček "xunit.2.4.1" byl přidán do "packages.config"
"xunit 2.4.1" byl úspěšně nainstalován na itsvse-test
Nuget trvalo 5,51 sekundy na realizaci
Uplynul čas: 00:00:07.7781544
PM>
Nainstalujte doplňky: xunit.runner.console (v tomto článku vynecháno) a xunit.runner.visualstudio

kde xUnit je rámec,A xunit.runner.visualstudio je balíček pluginů pro VS, abychom mohli snadno ladit ve VS.Instalaci xunit.runner.console lze také ladit pod CMDAle pokud by to bylo podporováno, myslím, že tento framework nebude používat mnoho lidí, koneckonců způsob psaní příkazů výrazně snižuje hodnocení Visual Studia, takže to zde nebudu vysvětlovat.

Zde pouze nainstalujeme balíček pluginů xunit.runner.visualstudio, pravým tlačítkem klikneme na projekt v Průzkumníku řešení a vybereme Spravovat balíčky NuGet. Vyhledejte (a nainstalujte) balíček s názvem xunit.runner.visualstudio:



Ujistěte se, že je testovací prohlížeč viditelný (přejděte do okna Test > > Test Exploreru). Pokaždé, když je projekt postaven, runner objeví jednotkové testy v projektu. Po určité době objevování byste měli vidět seznam objevených testů:



Upravte soubor programu a změňte následující kód:

Klikněte na odkaz v okně Spustit vše a měli byste při spuštění testu vidět aktualizaci výsledku v okně Průzkumníka:



Můžete kliknout na neúspěšný test, abyste si prohlédli zprávu o selhání a sledování zásobníku. Můžete kliknout na řádek stopového sledování, abyste šli přímo na neúspěšný řádek kódu.

(Konec)





Předchozí:Sleep Your Sister Alarm Clock v4.6.1 Profesionální placená prémiová čínská verze
Další:Dnešní poznámky k studiu C#
 Pronajímatel| Zveřejněno 22.01.2019 15:19:24 |
Xunit nemusí označovat testovací třídy

xUnit podporuje jak vlastnosti [Fakt], tak [Teorie]. Jak je vidět z kódu, [Fact] je podobný skutečnému volacímu kódu, který píšeme, zatímco [Theory] s InlineData může testovat více sad parametrů přímo v jedné metodě.

 Pronajímatel| Zveřejněno 22.01.2019 15:31:55 |
Testování anomálií

Xunit neoznačuje zachycení výjimek pomocí Attributes, ale přímo používá funkci Assert.Throws k ověření výjimek.

    veřejná třída TestTřída 1
    {
        [Fakt]
        test veřejné neplatnostiVýjimka()
        {
            Assert.Throws<InvalidOperationException>(() => operation());
        }

        void operation()
        {
            throw new InvalidOperationException();
        }
    }



Změňte název testovacího případu:

     [Fact(DisplayName = "Test maximální funkce")]



Přeskočit testovací případy:

     [fact(skip="refaktoring incomplete")]



Skupinování:

     [Vlastnost ("Skupina", "Kategorie")]
 Pronajímatel| Zveřejněno 22.01.2019 15:37:28 |
V mnoha případech nechceme, aby jednotkové testy ovlivňovaly obsah databáze, a někdy jsou naše jednotkové testy velmi pomalé kvůli vlivu databáze, takže často chceme izolovat část perzistence a při jednotkových testech data vlastně neuchovat. Tento druh izolace Obvykle používáme abstrakci, tedy používáme rozhraní nebo abstraktní třídy k izolaci perzistenční vrstvy a poté používáme mocky k simulaci odpovídajících rozhraní nebo abstraktních tříd, abychom doplnili odpovídající perzistenční třídy. MoQ je jedním z těchto Mock frameworků, MoQ používá C# 3.0, což je jednodušší na používání než NMock, je to silně typovaný způsob, a zdrojový kód i dll jsou přístupnéPřihlášení k hypertextovému odkazu je viditelné.Stahovat. Nejnovější verze MoQ je nyní verze 3.1 a 4.0 je stále v beta verzi.
https://www.cnblogs.com/catcher1994/p/5498530.html
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com