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.
- Avaa Visual Studio 2015 UDE
- Luo uusi projektityyppi ”Luokkakirjasto”
- Tallenna projekti nimellä
- 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.