Programavimas

Kaip dirbti su „xUnit.Net“ sistema

„XUnit“ naudoju jau gana ilgą laiką, ir tai yra mano pasirinkta „Unit“ testavimo sistema. Tai atvirojo kodo .net sistemos testavimo įrankis, suderinamas su „ReSharper“, „CodeRush“, „TestDriven.Net“ ir „Xamarin“. Norėdami lengvai nurodyti išimties tipą, galite pasinaudoti „xUnit.Net“ pranašumais. Be to, „xUnit.Net“ galite išplėsti „Fact“ arba „Theory“ atributus ir tai suteikia puikią paramą rašant parametrinius vieneto testus. Čia yra „Github“ saugyklos nuoroda, skirta „xUnit.Net“.

Štai kaip dirbti su „xUnit.net“ „Visual Studio“. Šiai demonstracijai naudosime „Visual Studio 2015“, nors galite dirbti ir su kitomis suderinamomis „Visual Studio“ versijomis. Dabar atlikite šiuos paprastus veiksmus, kad sukurtumėte aplinką darbui su „xUnit.Net“ „Visual Studio“.

  1. Atidarykite „Visual Studio 2015“ UDE
  2. Sukurkite naują „Klasės bibliotekos“ tipo projektą
  3. Išsaugokite projektą pavadinimu
  4. Tada įdiekite xUnit.Net per „NuGet Package Manager“

Štai ir viskas! Norėdami paleisti vieneto testus „Visual Studio IDE“, galite naudoti „xUnit.net“ bėgiklį, skirtą „Visual Studio“. Štai ką turėtumėte nurodyti, kad įdiegtumėte „xUnit.net“ [Runner: Visual Studio] paketą naudodami „Package Manager Console“ langą:

„Install-Package xunit.runner.visualstudio-2.1.0“ versija

Viskas, ko jums reikės, kad jūsų aplinka būtų sukonfigūruota, kad galėtumėte atlikti „xUnit.Net“ vieneto testus naudodami „Visual Studio IDE“.

Faktai ir teorijos

Priešingai nei populiarus [Test] atributas, kuris jums gali būti žinomas, jums reikės naudoti [Fact] atributą, norint parašyti vieneto bandymo metodus naudojant xUnit.net. Atkreipkite dėmesį, kad xUnit.net palaiko dviejų tipų vieneto testus: faktus ir teorijas.

Nors faktai naudojami nekintamoms sąlygoms tikrinti, teorijos yra testai, kurie tinka konkrečiam duomenų rinkiniui, perduotam kaip argumentas metodui. Paprastai naudokite [Faktas] atributą, norėdami rašyti vieneto testus, kuriuose nėra metodo argumentų.

Tačiau atributui [Theory] reikia perduoti vieną ar daugiau „DataAttribute“ egzempliorių kaip metodo argumentus. Iš esmės norėtumėte naudoti atributą [Teorija] rašydami duomenimis pagrįstus vieneto testus. Duomenimis pagrįsti vieneto testai atliekami naudojant skirtingus duomenų rinkinius.

Darant prielaidą, kad „xUnit.Net“ ir jos „Visual Studio“ bėgikas yra įdiegtas, pirmiausia parašykime paprastą vieneto testą naudodami [Fact] atributą. Apsvarstykite šį vieneto bandymo metodą - čia pasinaudosime [Faktas] atributu.

[Faktas]

public void „CheckEqualityTest“ ()

  {

Teigti. Lygus (10, suma (5, 5));

  }

Metodas „Sum“ priima du sveikus skaičius ir pateikia jų sumą.

privatus int suma (int x, int y)

  {

grįžti x + y;

  }

Paleidus šį testą, vieneto testas praeina - tai galite pamatyti „Windows Explorer“ naršyklėje „Visual Studio IDE“. Dabar panagrinėkime, kaip mes galime dirbti su teorijomis, atlikdami vieneto testus, kurie yra pagrįsti duomenimis.

Šis kodo fragmentas parodo, kaip galite dirbti su duomenų valdomais vieneto bandymais naudodami „xUnit.Net“.

[Teorija, „InlineData“ („Tai yra duomenų valdomas testas“, „duomenys“)]

public void CheckInputTest (eilutės įvestis, eilutės eilutė)

 {

„Assert.Equal“ (tiesa, įvestis. Sudėtyje yra (substring));

 }

Žr. Aukščiau pateiktą kodo fragmentą. Atkreipkite dėmesį į [Theory] atributo naudojimą. Jei vieneto testai nėra pagrįsti duomenimis, vieneto bandymo metoduose turėtumėte pasirinkti [Faktas] atributą. Atkreipkite dėmesį, kaip parametrai buvo perduodami naudojant duomenų valdomo vieneto bandymo metodą, pavadintą „CheckInput“. Atributas „InlineData“ pateikia šaltinio kodo duomenis. Šiame pavyzdyje duomenys perduodami vieneto bandymo metodui per vidines vertes. Taip pat galite turėti kelis „InlineData“ atributus - tereikia juos atskirti kableliu. Štai kaip galite tai pasiekti.

[Teorija, InlineData („Tai yra duomenų valdomas testas“, „duomenys“),

InlineData ("Tai yra dar vienas duomenų rinkinys, skirtas duomenų valdomam bandymui", "duomenys")]

public void CheckInputTest (eilutės įvestis, eilutės eilutė)

        {

„Assert.Equal“ (tiesa, įvestis. Sudėtyje yra (substring));

        }

Kai atliksite anksčiau nurodytą duomenų valdymą, „CheckInputTest“ metodas būtų vykdomas du kartus - po vieną kiekvienam įvesties duomenų rinkiniui.

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