Ohjelmointi

Kuinka työskennellä xUnit.Net-kehyksen kanssa

Olen käyttänyt xUnit-ohjelmaa jo jonkin aikaa, ja se on valitsemani Unit-testauskehys. Se on avoimen lähdekoodin testaustyökalu .Net-kehyksille, joka on yhteensopiva ReSharperin, CodeRushin, TestDriven.Netin ja Xamarinin kanssa. Voit hyödyntää xUnit.Net-sovellusta vahvistaaksesi poikkeustyypin helposti. Voit myös laajentaa Fact- tai Theory-määritteitä xUnit.Netissä ja se tarjoaa erinomaisen tuen parametroitujen yksikkötestien kirjoittamiseen. Tässä on xUnit.Net-sivuston Github-arkistolinkki.

Näin työskentelet xUnit.net: n kanssa Visual Studiossa. Tässä esittelyssä käytämme Visual Studio 2015: tä, vaikka voit työskennellä myös Visual Studion muiden yhteensopivien versioiden kanssa. Noudata nyt näitä yksinkertaisia ​​ohjeita, kun haluat määrittää ympäristön työskentelemään xUnit.Net: n kanssa Visual Studiossa.

  1. Avaa Visual Studio 2015 UDE
  2. Luo uusi projektityyppi ”Luokkakirjasto”
  3. Tallenna projekti nimellä
  4. Asenna seuraavaksi xUnit.Net NuGet Package Managerin kautta

Ja siinä se! Voit suorittaa yksikötestit Visual Studio IDE: ssä käyttämällä Visual Studion xUnit.net-juoksijaa. Näin sinun on määritettävä, jotta xUnit.net [Runner: Visual Studio] -paketti asennetaan Package Manager Console -ikkunan avulla:

Install-Package xunit.runner.visualstudio -Version 2.1.0

Tämä on kaikki mitä tarvitset, jotta ympäristösi asetetaan niin, että voit suorittaa xUnit.Net-yksikötestit Visual Studio IDE: n sisällä.

Faktat ja teoriat

Päinvastoin kuin suosittu [Test] -määritelmä, joka saatat olla perehtynyt, sinun on käytettävä [Fact] -attribuuttia kirjoittaaksesi yksikön testausmenetelmät xUnit.net -sivustolla. Huomaa, että xUnit.net tukee kahden tyyppisiä yksikkötestejä: tosiasiat ja teoriat.

Vaikka tosiseikkoja käytetään muuttumattomien olosuhteiden testaamiseen, teoriat ovat testejä, jotka pitävät paikkansa tietystä menetelmän argumenttina välitetystä tietojoukosta. [Fact] -attribuuttia käytetään tyypillisesti yksikötestien kirjoittamiseen, joissa ei ole metodiargumentteja.

[Theory] -attribuutti tarvitsee kuitenkin yhden tai useamman DataAttribute-esiintymän välitettäväksi metodiargumentteina. Pohjimmiltaan haluaisit käyttää [Teoria] -attribuuttia datalähtöisten yksikötestien kirjoittamiseen. Tietopohjaiset yksikötestit suoritetaan vaihtelevilla tietojoukoilla.

Olettaen, että xUnit.Net ja sen Visual Studion juoksija on asennettu, kirjoitetaan ensin yksinkertainen yksikkötesti [Fact] -attribuutilla. Harkitse seuraavaa yksikötestimenetelmää - hyödynnämme [Fact] -attribuuttia tässä.

[Tosiasia]

public void CheckEqualityTest ()

  {

Vahvista yhtäsuuri (10, summa (5, 5));

  }

Sum-menetelmä hyväksyy kaksi kokonaislukua ja palauttaa niiden summan.

yksityinen int Summa (int x, int y)

  {

paluu x + y;

  }

Kun suoritat tämän testin, yksikötesti läpäisee - näet sen Visual Studio IDE: n Test Explorer Windowsissa. Tutkitaan nyt, kuinka voimme työskennellä teorioiden kanssa datapohjaisten yksikkötestien suorittamiseksi.

Seuraava koodinpätkä kuvaa, kuinka voit työskennellä dataohjattujen yksikötestien kanssa käyttämällä xUnit.Net-sovellusta.

[Teoria, InlineData ("Tämä on dataohjattu testi", "data")]

public void CheckInputTest (merkkijono, merkkijono)

 {

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

 }

Katso yllä annettu koodinpätkä. Huomaa [Teoria] -attribuutin käyttö. Ellei yksikkötestisi ole tietopohjaista, sinun tulisi valita [Fact] -attribuutti yksikkötestimenetelmissäsi. Huomaa, kuinka parametrit on välitetty datalähtöisen yksikön testimenetelmässä nimeltä CheckInput. InlineData-attribuutti antaa lähdekooditiedot. Tässä esimerkissä tiedot välitetään yksikkötestausmenetelmälle sisäisten arvojen kautta. Sinulla voi olla myös useita InlineData-määritteitä - sinun tarvitsee vain erottaa ne pilkulla. Näin voit saavuttaa tämän.

[Teoria, InlineData ("Tämä on tietopohjainen testi", "data"),

InlineData ("Tämä on toinen tietojoukko tietopohjaista testiä varten", "data")]

public void CheckInputTest (merkkijono, merkkijono)

        {

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

        }

Kun suoritat yllä olevan dataohjatun testin, CheckInputTest-menetelmä suoritetaan kahdesti - kerran jokaiselle syötetiedostoryhmälle.