Programmēšana

Kā strādāt ar xUnit.Net ietvaru

Es jau ilgu laiku lietoju xUnit, un tas ir mans izvēlētais Unit testēšanas ietvars. Tas ir atvērtā koda vienību testēšanas rīks .Net Framework, kas ir saderīgs ar ReSharper, CodeRush, TestDriven.Net un Xamarin. Lai viegli norādītu izņēmuma veidu, varat izmantot xUnit.Net priekšrocības. Varat arī paplašināt faktu vai teorijas atribūtus vietnē xUnit.Net, un tas nodrošina lielisku atbalstu parametrizētu vienību testu rakstīšanai. Šeit ir saite xithit.Net ar Github krātuvi.

Lūk, kā strādāt ar xUnit.net Visual Studio. Šajā demonstrācijā mēs izmantosim Visual Studio 2015, lai gan jūs varat strādāt arī ar citām saderīgām Visual Studio versijām. Veiciet šīs vienkāršās darbības, lai iestatītu savu vidi darbam ar xUnit.Net Visual Studio.

  1. Atveriet Visual Studio 2015 UDE
  2. Izveidojiet jaunu “Klases bibliotēkas” tipa projektu
  3. Saglabājiet projektu ar nosaukumu
  4. Pēc tam instalējiet xUnit.Net, izmantojot NuGet pakešu pārvaldnieku

Un viss! Lai palaistu vienības testus Visual Studio IDE, Visual Studio varat izmantot xUnit.net skrējēju. Lūk, kas jums jānorāda, lai instalētu xUnit.net [Runner: Visual Studio] pakotni, izmantojot pakešu pārvaldnieka konsoles logu:

Install-Package xunit.runner.visualstudio -Versija 2.1.0

Tas ir viss, kas jums nepieciešams, lai iestatītu savu vidi, lai jūs varētu izpildīt xUnit.Net vienības testus no Visual Studio IDE.

Fakti un teorijas

Pretēji populārajam [Test] atribūtam, kas jums varētu būt pazīstams, jums būs jāizmanto atribūts [Fakts], lai rakstītu vienības testa metodes, izmantojot xUnit.net. Ņemiet vērā, ka xUnit.net atbalsta divu veidu vienību testus: faktus un teorijas.

Lai gan faktus izmanto, lai pārbaudītu nemainīgus apstākļus, teorijas ir testi, kas attiecas uz konkrētu datu kopu, kas nodota kā arguments metodei. Atribūtu [Fakts] parasti izmantojat, lai rakstītu vienības testus, kuriem nav metožu argumentu.

Tomēr atribūtam [Theory] ir nepieciešams viens vai vairāki DataAttribute gadījumi, kas jānodod kā metodes argumenti. Būtībā jūs vēlaties izmantot atribūtu [Theory], lai rakstītu ar datiem pamatotu vienību testus. Ar datiem pamatoti vienības testi ir tie, kas tiek veikti ar dažādiem datu kopumiem.

Pieņemot, ka xUnit.Net un tā Visual Studio skrējējs ir instalēts, vispirms uzrakstīsim vienkāršu vienības testu, izmantojot atribūtu [Fakts]. Apsveriet šādu vienības testa metodi - šeit izmantosim [Fakts] atribūtu.

[Fakts]

public void CheckEqualityTest ()

  {

Apstiprināt. Vienāds (10, Sum (5, 5));

  }

Summa metode pieņem divus veselus skaitļus un atgriež to summu.

privāts int summa (int x, int y)

  {

atgriešanās x + y;

  }

Palaidot šo testu, vienības pārbaude nokārtota - to var redzēt programmas Windows Explorer programmā Visual Studio IDE. Tagad izpētīsim, kā mēs varam strādāt ar teorijām, lai veiktu vienību testus, kas ir balstīti uz datiem.

Šis koda fragments parāda, kā jūs varat strādāt ar datu vadītu vienību testiem, izmantojot xUnit.Net.

[Teorija, InlineData ("Šis ir ar datiem pamatots tests", "dati")]

public void CheckInputTest (virknes ievade, virknes apakšvirkne)

 {

Assert.Equal (patiess, ievade. Satur (apakšvirkne));

 }

Skatiet iepriekš sniegto koda fragmentu. Ievērojiet atribūta [Theory] lietojumu. Ja vienības vienības testi nav balstīti uz datiem, vienības pārbaudes metodēs jāizvēlas atribūts [Fakts]. Ievērojiet, kā parametri ir nodoti ar datiem pamatotās vienības pārbaudes metodē ar nosaukumu CheckInput. Atribūts InlineData nodrošina avota koda datus. Šajā piemērā dati tiek nodoti vienības testa metodei, izmantojot iekšējās vērtības. Jums var būt arī vairāki InlineData atribūti - tie vienkārši jānodala, izmantojot komatu. Lūk, kā jūs to varat sasniegt.

[Teorija, InlineData ("Šis ir ar datiem pamatots tests", "dati"),

InlineData ("Šis ir vēl viens datu kopums datu vadītajam testam", "dati")]

public void CheckInputTest (virknes ievade, virknes apakšvirkne)

        {

Apstiprināt. Vienāds (patiess, ievade. Satur (apakšvirkne));

        }

Veicot iepriekš minēto ar datiem pamatoto testu, metode CheckInputTest tiks izpildīta divas reizes - vienreiz katrai ievades datu kopai.

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