Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 31285|Svar: 3

[Källa] .net/c# använder xunit-enhetstester

[Kopiera länk]
Publicerad på 2019-01-22 14:58:26 | | | |
För närvarande är jag med. Testverktygen under Net-ramverket inkluderar främst Nunit, inbyggda MSTest och Xunit, och denna artikel kommer kort att introducera hur man använder XUnit, en stigande stjärna i VS.

Den minsta körtid som stöds av xunit är . NET 4.5.2, de flesta är högre. Även om du kan bygga ett 4.0-klassbibliotek fungerar det fortfarande på minst .NET 4.5.2. Detaljerade länkar:https://github.com/xunit/xunit/issues/1817


Först skapade jag ett nytt .NET 4.5.2-konsolprojekt med namnet: itsvse-test, och den senaste versionen av xunit är: 2.4.1, så nuget-kommandot är följande:

Varje paket licensieras till dig av dess ägare. NuGet ansvarar inte för tredjepartspaket och licensierar dem inte. Vissa paket kan inkludera beroenden som omfattas av andra licenser. Klicka på paketets källkods-URL för att avgöra eventuella beroenden.

Package Manager konsolvärdversion 4.7.0.5212

Skriv "get-help NuGet" för att se alla tillgängliga NuGet-kommandon.

PM> Installationspaket xunit -Version 2.4.1


Försök görs att samla in och måla in." NETFramework, Version=v4.5.2" av projektet "itsvse-test" om paketet "xunit.2.4.1"
Det tar 2,1 sekunder att samla in beroendeinformation
Försöker lösa beroendet i paketet "xunit.2.4.1" med DependencyBehavior som "Lägst"
Att tolka beroendeinformation tar 0 ms
Parsningsoperation för att installera paketet "xunit.2.4.1"
Åtgärdade operationen för att installera paketet "xunit.2.4.1"
Hämta paketet "xunit 2.4.1" från "cnblogs"
Hämta paketet "xunit.abstractions 2.0.3" från "cnblogs"
Hämta paketet "xunit.analyzers 0.10.0" från "cnblogs"
Hämta paketet "xunit.assert 2.4.1" från "cnblogs"
Hämta paketet "xunit.core 2.4.1" från "cnblogs"
Hämta paketet "xunit.extensibility.core 2.4.1" från "cnblogs"
Hämta paketet "xunit.extensibility.execution 2.4.1" från "cnblogs"
  GÅhttps://api.nuget.org/v3-flatcon ... 1/xunit.2.4.1.nupkg
  GÅhttps://api.nuget.org/v3-flatcon ... actions.2.0.3.nupkg
  GÅhttps://api.nuget.org/v3-flatcon ... it.core.2.4.1.nupkg
  GÅhttps://api.nuget.org/v3-flatcon ... .assert.2.4.1.nupkg
  GÅhttps://api.nuget.org/v3-flatcon ... ty.core.2.4.1.nupkg
  GÅhttps://api.nuget.org/v3-flatcon ... ecution.2.4.1.nupkg
  GÅhttps://api.nuget.org/v3-flatcon ... lyzers.0.10.0.nupkg
  OKEJhttps://api.nuget.org/v3-flatcon ... actions.2.0.3.nupkg116 ms
  OKEJhttps://api.nuget.org/v3-flatcon ... 1/xunit.2.4.1.nupkg117 ms
Installerar xunit.abstractions 2.0.3.
Installerar xunit 2.4.1.
  OKEJhttps://api.nuget.org/v3-flatcon ... it.core.2.4.1.nupkg151 ms
Installerar xunit.core 2.4.1.
  OKEJhttps://api.nuget.org/v3-flatcon ... .assert.2.4.1.nupkg167 ms
Installerar xunit.assert 2.4.1.
  OKEJhttps://api.nuget.org/v3-flatcon ... ty.core.2.4.1.nupkg221 ms
Installerar xunit.extensibility.core 2.4.1.
  OKEJhttps://api.nuget.org/v3-flatcon ... lyzers.0.10.0.nupkg200 ms
Installerar xunit.analyzers 0.10.0.
  OKEJhttps://api.nuget.org/v3-flatcon ... ecution.2.4.1.nupkg306 ms
Installerar xunit.extensibility.execution 2.4.1.
Lägger till paketet "xunit.abstractions.2.0.3" i mappen "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Paketet "xunit.abstractions.2.0.3" har lagts till i mappen "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Lade till paketet "xunit.abstractions.2.0.3" till "packages.config"
Installerade framgångsrikt "xunit.abstractions 2.0.3" till itsvse-test
Lägger till verktygsset-enbart paketet "xunit.analyzers.0.10.0" till "itsvse-test"
Lägger till paketet "xunit.analyzers.0.10.0" i mappen "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Paketet "xunit.analyzers.0.10.0" har lagts till i mappen "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Lade till paketet "xunit.analyzers.0.10.0" till "packages.config"
Skriptfil "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages\xunit.analyzers.0.10.0\tools\install.ps1"
"xunit.analyzers 0.10.0" har framgångsrikt installerats i itsvse-test
Lägger till paketet "xunit.assert.2.4.1" i mappen "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Paketet "xunit.assert.2.4.1" har lagts till i mappen "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Lade till paketet "xunit.assert.2.4.1" till "packages.config"
"xunit.assert 2.4.1" har installerats framgångsrikt till itsvse-test
Lägger till paketet "xunit.extensibility.core.2.4.1" i mappen "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Paketet "xunit.extensibility.core.2.4.1" har lagts till i mappen "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Lade till paketet "xunit.extensibility.core.2.4.1" till "packages.config"
"xunit.extensibility.core 2.4.1" har framgångsrikt installerats till itsvse-test
Att lägga till paketet "xunit.extensibility.execution.2.4.1" i mappen "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Paketet "xunit.extensibility.execution.2.4.1" har lagts till i mappen "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Lade till paketet "xunit.extensibility.execution.2.4.1" till "packages.config"
"xunit.extensibility.execution 2.4.1" har installerats framgångsrikt till itsvse-test
Lägger till paketet "xunit.core.2.4.1" i mappen "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Paketet "xunit.core.2.4.1" har lagts till i mappen "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Lade till paketet "xunit.core.2.4.1" till "packages.config"
"xunit.core 2.4.1" har framgångsrikt installerats i itsvse-test
Lägger till paketet "xunit.2.4.1" med endast beroenden till projekt "itsvse-test".
Paketet "xunit.2.4.1" läggs till i mappen "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Paketet "xunit.2.4.1" har lagts till i mappen "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Paketet "xunit.2.4.1" har lagts till i "packages.config"
"xunit 2.4.1" har installerats framgångsrikt i itsvse-test
Nuget tog 5,51 sekunder att genomföra
Förfluten tid: 00:00:07.7781544
PM>
Installera plug-in-paketen: xunit.runner.console (utelämnas i denna artikel) och xunit.runner.visualstudio

där xUnit är ramverket,Och xunit.runner.visualstudio är VS-pluginpaketet, så att vi enkelt kan felsöka i VS.Installation av xunit.runner.console kan också felsökas under CMDMen om bara detta stöds tror jag att inte många kommer att använda detta ramverk, trots allt sänker sättet att skriva kommandon kraftigt betyget på Visual Studio, så jag kommer inte att förklara det här.

Här installerar vi endast pluginpaketet xunit.runner.visualstudio, högerklickar på projektet i Solution Explorer och väljer Hantera NuGet-paket. Sök efter (och installera) ett paket som heter xunit.runner.visualstudio:



Se till att testwebbläsaren är synlig (gå till fönstret Test > > Test Explorer). Varje gång ett projekt byggs upptäcker löparen enhetstester i projektet. Efter en upptäcktsperiod bör du se en lista över upptäckta tester:



Redigera programfilen och ändra följande kod:

Klicka på länken i fönstret Kör alla så bör du se resultatuppdateringen i Testutforskaren när du kör testet:



Du kan klicka på det misslyckade testet för att se felmeddelandet och stacka spårningen. Du kan klicka på stackspårningslinjen för att gå direkt till den misslyckade kodraden.

(Slut)





Föregående:Sleep Your Sister väckarklocka v4.6.1 professionell betald premiumversion på kinesiska
Nästa:Dagens C# Study Notes
 Hyresvärd| Publicerad på 2019-01-22 15:19:24 |
Xunit behöver inte tagga testklasser

xUnit stöder både [Fakta]- och [Teori]-egenskaper. Som du kan se från koden är [Fact] liknande den faktiska anropskoden vi skriver, medan [Theory] med InlineData kan testa flera uppsättningar parametrar direkt i en metod.

 Hyresvärd| Publicerad på 2019-01-22 15:31:55 |
Avvikelsetestning

Xunit flaggar inte undantagsfångster via Attributes, utan använder direkt Assert.Throws-assertionsfunktionen för att validera undantag.

    offentlig klass TestKlass 1
    {
        [Fakta]
        public void testException()
        {
            Assert.Throws<InvalidOperationException>(() => operation());
        }

        Void operation()
        {
            kasta ny InvalidOperationException();
        }
    }



Byt namn på testfallet:

     [Faktum(DisplayName = "Max funktionstest")]



Hoppa över testfall:

     [faktum(hoppa="omstrukturering ofullständig")]



Gruppering:

     [Egenskap("Grupp", "Kategori")]
 Hyresvärd| Publicerad på 2019-01-22 15:37:28 |
I många fall vill vi inte att enhetstester ska påverka innehållet i databasen, och ibland är våra enhetstester mycket långsamma på grund av databasens påverkan, så vi vill ofta isolera persistensdelen och lagrar inte riktigt datan när vi gör enhetstester. Denna typ av isolering använder vi vanligtvis abstraktion, det vill säga använder gränssnitt eller abstrakta klasser för att isolera persistenslagret, och sedan använder vi mocks för att simulera motsvarande gränssnitt eller abstrakta klasser för att komplettera motsvarande persistensklasser. MoQ är ett av dessa mock-ramverk, MoQ använder C# 3.0, vilket är enklare att använda än NMock, och det är ett starkt typat sätt, och källkoden och dll kan nåsInloggningen med hyperlänken är synlig.Ladda ner. Den senaste versionen av MoQ är nu version 3.1, och 4.0 är fortfarande i beta.
https://www.cnblogs.com/catcher1994/p/5498530.html
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com