Programiranje

Kako delati z ogrodjem xUnit.Net

Že nekaj časa uporabljam xUnit in je moj izbrani okvir za testiranje enot. To je odprtokodno orodje za testiranje enot za .Net framework, ki je združljivo z ReSharper, CodeRush, TestDriven.Net in Xamarin. XUnit.Net lahko izkoristite za enostavno uveljavitev vrste izjeme. Atribute Fact ali Theory lahko razširite tudi v xUnit.Net in nudi odlično podporo za pisanje parametriziranih preskusov enot. Tu je povezava do repozitorija Github za xUnit.Net.

Tukaj je opisano, kako delati z xUnit.net v Visual Studio. Za to predstavitev bomo uporabili Visual Studio 2015, čeprav lahko delate tudi z drugimi združljivimi različicami Visual Studio. Zdaj sledite tem preprostim korakom za nastavitev okolja za delo z xUnit.Net v Visual Studio.

  1. Odprite Visual Studio 2015 UDE
  2. Ustvarite nov projekt tipa »Knjižnica razredov«
  3. Shranite projekt z imenom
  4. Nato namestite xUnit.Net prek upravitelja paketov NuGet

In to je to! Za zagon preskusov enote v Visual Studio IDE lahko uporabite tekač xUnit.net za Visual Studio. Tukaj je tisto, kar bi morali določiti za namestitev paketa xUnit.net [Runner: Visual Studio] z uporabo okna konzole Package Manager:

Namesti-paket xunit.runner.visualstudio-Različica 2.1.0

To je vse, kar boste potrebovali za nastavitev okolja, da boste lahko izvajali preskuse enot xUnit.Net znotraj Visual Studio IDE.

Dejstva in teorije

V nasprotju s priljubljenim atributom [Test], ki ste ga morda že poznali, bi morali uporabiti atribut [Fact] za pisanje svojih testnih metod z uporabo xUnit.net. Upoštevajte, da xUnit.net podpira dve vrsti preskusov enot: dejstva in teorije.

Medtem ko se dejstva uporabljajo za preizkušanje nespremenljivih pogojev, so teorije preskusi, ki so resnični za določen nabor podatkov, posredovanih kot argument metodi. Atribut [Fact] bi običajno uporabili za pisanje preskusov enot, ki nimajo argumentov metode.

Vendar mora atribut [Theory] kot argumente metode poslati enega ali več primerkov DataAttribute. V bistvu bi radi uporabili atribut [Theory] za pisanje podatkovnih testov, ki jih vodijo podatki. Podatkovni enotni testi so tisti, ki se izvajajo na različnih naborih podatkov.

Ob predpostavki, da je nameščen xUnit.Net in njegov tekač za Visual Studio, najprej napišimo preprost preskus enote z atributom [Fact]. Upoštevajte naslednjo enotno preskusno metodo - tukaj bomo izkoristili atribut [Fact].

[Dejstvo]

javna void CheckEqualityTest ()

  {

Uveljavi Enako (10, Vsota (5, 5));

  }

Metoda Sum sprejme dve celi števili in vrne njihovo vsoto.

private int Sum (int x, int y)

  {

vrnitev x + y;

  }

Ko zaženete ta preizkus, test enote opravi - to lahko vidite v programu Test Explorer Windows v vašem Visual Studio IDE. Zdaj pa raziščimo, kako lahko s teorijami izvajamo enote, ki temeljijo na podatkih.

Naslednji delček kode ponazarja, kako lahko z xUnit.Net delate s preskusi enot, ki temeljijo na podatkih.

[Theory, InlineData ("To je test, ki temelji na podatkih", "podatki")]

javna void CheckInputTest (vnos niza, niz niza)

 {

Assert.Equal (true, input.Contains (podniz));

 }

Glejte zgornji delček kode. Upoštevajte uporabo atributa [Theory]. Če preskusi enot ne temeljijo na podatkih, se v metodah preskusa enote odločite za atribut [Fact]. Upoštevajte, kako so bili parametri posredovani v preskusni metodi enote, ki jo vodijo podatki, imenovani CheckInput. Atribut InlineData vsebuje podatke izvorne kode. V tem primeru se podatki posredujejo v enotno preskusno metodo prek vstavljenih vrednosti. Lahko imate tudi več atributov InlineData - ločiti jih morate le z vejico. Evo, kako lahko to dosežete.

[Theory, InlineData ("To je podatkovno preizkušen test", "podatki"),

InlineData ("To je še en niz podatkov za preskus, ki temelji na podatkih", "podatki")]

javna void CheckInputTest (vnos niza, niz niza)

        {

Assert.Equal (true, input.Contains (podniz));

        }

Ko izvedete zgornji preskus s podatki, bi se metoda CheckInputTest izvedla dvakrat - enkrat za vsak niz vhodnih podatkov.

$config[zx-auto] not found$config[zx-overlay] not found