Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 31285|Odpowiedź: 3

[Źródło] .NET/C# wykorzystuje testy jednostkowe Xunit

[Skopiuj link]
Opublikowano 22.01.2019 14:58:26 | | | |
Obecnie w grze. Narzędzia testowe w ramach frameworka Net to głównie Nunit, wbudowany MSTest oraz Xunit, a ten artykuł krótko przedstawi, jak korzystać z XUnit, wschodzącej gwiazdy w VS.

Minimalny czas działania obsługiwany przez xunit wynosi . NET 4.5.2, z których większość jest wyższa. Nawet jeśli uda Ci się zbudować bibliotekę klas 4.0, nadal będzie działać przynajmniej na .NET 4.5.2. Szczegółowe linki:https://github.com/xunit/xunit/issues/1817


Najpierw stworzyłem nowy projekt konsoli .NET 4.5.2 o nazwie: itsvse-test, a najnowsza wersja xunit to: 2.4.1, więc polecenie nuget wygląda następująco:

Każdy pakiet jest licencjonowany przez swojego właściciela. NuGet nie ponosi odpowiedzialności za pakiety firm trzecich i nie udziela na nie licencji. Niektóre pakiety mogą zawierać zależności podlegające innym licencjom. Kliknij na adres URL pakietu źródłowego (źródłowego), aby określić ewentualne zależności.

Package Manager konsola host wersja 4.7.0.5212

Wpisz "get-help NuGet", aby zobaczyć wszystkie dostępne komendy NuGet.

PM> Install-Package xunit -Version 2.4.1


Podejmowane są próby zebrania i namierzenia ". NETFramework, Version=v4.5.2" projektu "itsvse-test" dotyczący pakietu "xunit.2.4.1"
Zebranie informacji o zależności zajmuje 2,1 sekundy
Próba rozwiązania zależności pakietu "xunit.2.4.1" z DependencyBehavior jako "Najniższy"
Parsowanie informacji zależności zajmuje 0 ms
Operacja parsowania w celu instalacji pakietu "xunit.2.4.1"
Rozwiązano operację instalacji pakietu "xunit.2.4.1"
Pobierz pakiet "xunit 2.4.1" z "cnblogs"
Pobierz pakiet "xunit.abstractions 2.0.3" z "cnblogs"
Pobierz pakiet "xunit.analyzers 0.10.0" z "cnblogs"
Pobierz pakiet "xunit.assert 2.4.1" z "cnblogs"
Pobierz pakiet "xunit.core 2.4.1" z "cnblogs"
Pobierz pakiet "xunit.extensibility.core 2.4.1" z "cnblogs"
Pobierz pakiet "xunit.extensibility.execution 2.4.1" z "cnblogs"
  POBIERZhttps://api.nuget.org/v3-flatcon ... 1/xunit.2.4.1.nupkg
  POBIERZhttps://api.nuget.org/v3-flatcon ... actions.2.0.3.nupkg
  POBIERZhttps://api.nuget.org/v3-flatcon ... it.core.2.4.1.nupkg
  POBIERZhttps://api.nuget.org/v3-flatcon ... .assert.2.4.1.nupkg
  POBIERZhttps://api.nuget.org/v3-flatcon ... ty.core.2.4.1.nupkg
  POBIERZhttps://api.nuget.org/v3-flatcon ... ecution.2.4.1.nupkg
  POBIERZhttps://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
Instaluję xunit.abstractions 2.0.3.
Instaluję xunit 2.4.1.
  OKhttps://api.nuget.org/v3-flatcon ... it.core.2.4.1.nupkg151 ms
Instaluję xunit.core 2.4.1.
  OKhttps://api.nuget.org/v3-flatcon ... .assert.2.4.1.nupkg167 ms
Instalacja xunit.assert 2.4.1.
  OKhttps://api.nuget.org/v3-flatcon ... ty.core.2.4.1.nupkg221 ms
Instalacja xunit.extensibility.core 2.4.1.
  OKhttps://api.nuget.org/v3-flatcon ... lyzers.0.10.0.nupkg200 ms
Instalacja xunit.analyzers 0.10.0.
  OKhttps://api.nuget.org/v3-flatcon ... ecution.2.4.1.nupkg306 ms
Instalacja xunit.extensibility.execution 2.4.1.
Dodanie pakietu "xunit.abstractions.2.0.3" do folderu "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Pakiet "xunit.abstractions.2.0.3" został dodany do folderu "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Dodano pakiet "xunit.abstractions.2.0.3" do "packages.config"
Pomyślnie zainstalowano "xunit.abstractions 2.0.3" na itsvse-test
Dodanie pakietu tylko do zestawu narzędzi "xunit.analyzers.0.10.0" do "itsvse-test"
Dodanie pakietu "xunit.analyzers.0.10.0" do folderu "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Do folderu "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" został dodany pakiet "xunit.analyzers.0.10.0"
Dodano pakiet "xunit.analyzers.0.10.0" do "packages.config"
Plik skryptowy "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages\xunit.analyzers.0.10.0\tools\install.ps1"
"xunit.analyzers 0.10.0" został pomyślnie zainstalowany na itsvse-test
Dodanie pakietu "xunit.assert.2.4.1" do folderu "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Do folderu "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" został dodany pakiet "xunit.assert.2.4.1"
Dodano pakiet "xunit.assert.2.4.1" do "packages.config"
"xunit.assert 2.4.1" został pomyślnie zainstalowany na itsvse-test
Dodanie pakietu "xunit.extensibility.core.2.4.1" do folderu "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Do folderu "C:\Users\itsvse_pc Source\Repos\itsvse-test\packages" został dodany pakiet "xunit.extensibility.core.2.4.1"
Dodano pakiet "xunit.extensibility.core.2.4.1" do "packages.config"
"xunit.extensibility.core 2.4.1" został pomyślnie zainstalowany na itsvse-test
Dodanie pakietu "xunit.extensibility.execution.2.4.1" do folderu "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Do folderu "C:\Users\itsvse_pc Source\Repos\itsvse-test\packages" dodano pakiet "xunit.extensibility.execution.2.4.1"
Dodano pakiet "xunit.extensibility.execution.2.4.1" do "packages.config"
"xunit.extensibility.execution 2.4.1" zostało pomyślnie zainstalowane na itsvse-test
Dodanie pakietu "xunit.core.2.4.1" do folderu "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Do folderu "C:\Users\itsvse_pc Source\Repos\itsvse-test\packages" został dodany pakiet "xunit.core.2.4.1"
Dodano pakiet "xunit.core.2.4.1" do "packages.config"
"xunit.core 2.4.1" został pomyślnie zainstalowany do ITSVSE-Test
Dodanie pakietu "xunit.2.4.1" z jedynymi zależnościami do projekcji "itsvse-test".
Do folderu "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" jest dodawany pakiet "xunit.2.4.1"
Do folderu "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" został dodany pakiet "xunit.2.4.1"
Do "packages.config" dodano pakiet "xunit.2.4.1"
"xunit 2.4.1" został pomyślnie zainstalowany do testu ITSVSE-Test
Nuget potrzebował 5,51 sekundy na wykonanie
Upływ czasu: 00:00:07.7781544
PM>
Zainstaluj pakiety wtyczek: xunit.runner.console (pominięte w tym artykule) oraz xunit.runner.visualstudio

gdzie xUnit to rama,A xunit.runner.visualstudio to pakiet wtyczek VS, tak abyśmy mogli łatwo debugować w VS.Instalację xunit.runner.console można również debugować pod kontrolą CMDAle jeśli tylko to będzie obsługiwane, wierzę, że niewiele osób będzie korzystać z tego frameworka, w końcu sposób wpisywania poleceń poważnie obniża ocenę Visual Studio, więc nie będę tego tu wyjaśniał.

Tutaj instalujemy tylko pakiet wtyczek xunit.runner.visualstudio, klikamy prawym przyciskiem myszy na projekt w Eksploratorze rozwiązań i wybieramy Manage NuGet Packages. Wyszukaj (i zainstaluj) pakiet o nazwie xunit.runner.visualstudio:



Upewnij się, że przeglądarka testowa jest widoczna (przejdź do okna Test > > Test Explorer). Za każdym razem, gdy projekt jest tworzony, runner odkrywa testy jednostkowe w projekcie. Po okresie odkrycia powinieneś zobaczyć listę odkrytych testów:



Edytuj plik programu i zmień następujący kod:

Kliknij link w oknie Uruchom wszystko, a powinieneś zobaczyć aktualizację wyniku w oknie Eksploratora testów podczas uruchamiania testu:



Możesz kliknąć na test nieudany, aby zobaczyć komunikat o awarii i śledzenie stosu. Możesz kliknąć linię śledzenia stosu, aby przejść bezpośrednio do nieudanej linii kodu.

(Koniec)





Poprzedni:Budzik Sleep Your Sister v4.6.1 Profesjonalna, płatna wersja premium chińska
Następny:Dzisiejsze notatki do nauki C#
 Ziemianin| Opublikowano 22.01.2019 15:19:24 |
Xunit nie musi oznaczać klas testowych

xUnit obsługuje zarówno właściwości [Fakt], jak i [Teoria]. Jak widać z kodu, [Fact] jest podobny do rzeczywistego kodu wywołań, który piszemy, podczas gdy [Theory] z InlineData może testować wiele zestawów parametrów bezpośrednio w jednej metodzie.

 Ziemianin| Opublikowano 22.01.2019 15:31:55 |
Testowanie anomalii

Xunit nie oznacza chwytów wyjątków za pomocą Atrybutów, lecz bezpośrednio używa funkcji asercji Assert.Throws do walidacji wyjątków.

    Klasa publiczna TestKlasa 1
    {
        [Fakt]
        test nieważności publicznegoException()
        {
            Assert.Throws<InvalidOperationException>(() => operation());
        }

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



Zmień nazwę przypadku testowego:

     [Fact(DisplayName = "Test Max Function")]



Pomiń przypadki testowe:

     [fact(skip="refaktoring incomplete")]



Grupowanie:

     [Cecha ("Grupa", "Kategoria")]
 Ziemianin| Opublikowano 22.01.2019 15:37:28 |
W wielu przypadkach nie chcemy, aby testy jednostkowe wpływały na zawartość bazy danych, a czasem nasze testy jednostkowe są bardzo wolne ze względu na wpływ bazy danych, więc często chcemy izolować część persistencyjną i nie utrzymywać danych podczas testów jednostkowych. Tego rodzaju izolacja Zazwyczaj używamy abstrakcji, czyli używamy interfejsów lub klas abstrakcyjnych do izolacji warstwy persencyjnej, a następnie używamy mocków do symulacji odpowiadających interfejsów lub klas abstrakcyjnych, aby uzupełnić odpowiadające klasy persencyjne. MoQ to jeden z takich frameworków Mock, MoQ używa C# 3.0, który jest prostszy w użyciu niż NMock, jest mocno typowany, a kod źródłowy i dll są dostępneLogowanie do linku jest widoczne.Pobierz. Najnowsza wersja MoQ to już wersja 3.1, a 4.0 jest nadal w fazie beta.
https://www.cnblogs.com/catcher1994/p/5498530.html
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com