C #. Vieneto testo sukūrimo pavyzdys MS Visual Studio
- Turinys
- Vykdymas
- 2. Modulio teksto „Program.cs“ parengimas
- 2.2. Padarykite programos klasę viešai
- 3. Bandomosios programos sąrašas
- 4. Bandymo sukūrimas
- 4.1. Naujo projekto pridėjimas prie sprendimo
- 4.2. Sprendimų struktūra
- 4.3. Failo „UnitTest1.cs“ tekstas. Atributai [TestMethod] ir [TestClass]
- 4.4. Modulio „UnitTest1“ teksto keitimas. Bandymo metodo pavadinimo keitimas
- 4.5. „MinApp“ projekto prijungimas prie „TestMinApp“ projekto
- 4.6. Modulio „UnitTest1.cs“ teksto keitimas
- 4.6.2. TestMin () metodo tekstas
- 4.7. UnitTest1.cs modulio tekstas
- 5. Vykdykite bandymą ir patikrinkite bandymo rezultatus
- 6. Rezultatas. Projektų sąveika
Šioje temoje aprašomas žingsnis po žingsnio, kai „Microsoft Visual Studio 2010“ (C #) sukuriamas paprastas vieneto testas programai, pvz., „Console Application“. Naudodami šį pavyzdį galite sužinoti, kaip sukurti savo vieneto testus. Pavyzdys taip pat parodo Assert klasės naudojimą funkcijų veikimui tikrinti.
Turinys
Problemos būklė
Taikant tokią programą kaip konsolės taikomoji programa, sukurkite vieneto testą, kuris tikrina Min () funkcijos veikimą, kuris nustato maksimalų trijų skaičių elementą.
Funkcijai Min () nustatykite TestMin () testavimo metodą (). Patikrinkite funkciją.
Vykdymas
1. Sukurkite programą naudodami „Console Applicaiton“ šabloną
Vykdyti MS Visual Studio 2010, jei norite sukurti projektą naudodami konsolės taikymo modelį, turi būti vadinama tokia komandų seka:
Failas -> Naujas -> Projektas ...
Dėl to atsidaro langas Naujas projektas. Lange pasirinkite konsolės taikymo šabloną, kaip parodyta 1 paveiksle. Šablonas yra pasirinktas skirtuke Visual C #.
„Visual C # -> Console Application“
Fig. 1. Langas „Naujas projektas“. Programos, pvz., „Console Application“, pasirinkimas
2. Modulio teksto „Program.cs“ parengimas
2.1. Pridėti funkciją Min () prie modulio teksto
Programos klasės kūne pridėkite Min () funkcijos tekstą.
Ši funkcija yra paskelbta vieša (statiška) ir vieša. Min () funkcijos tekstas
viešas statinis int Min (int a, int b, int c) {int min = a; jei (min> b) min = b; jei (min> c) min = c; grįžti min; }
Fig. 2. „MS Visual Studio 2010“ lango vaizdas, modulis „Program.cs“
2.2. Padarykite programos klasę viešai
Kad galėtumėte naudotis Programos klasės Min () funkcija, turite padaryti šią klasę viešai prieinamą. Norėdami tai padaryti, prieš deklaruodami klasę turite apibrėžti viešąjį raktinį žodį.
... namespace MinApp {viešosios klasės programa {// klasės metodai // ...}} ...
Po to bandymų programa yra parengta.
3. Bandomosios programos sąrašas
Šiuo metu bandomosios programos sąrašas yra toks:
naudojant sistemą; naudojant System.Collections.Generic; naudojant System.Linq; naudojant System.Text; namespace MinApp {viešosios klasės programa {viešoji statinė int Min (int a, int b, int c) {int min = a; jei (min> b) min = b; jei (min> c) min = c; grįžti min; } static void Main (eilutė [] args) {Console.WriteLine (vieneto testavimo demonstracija C #.)); }}}
Kadangi ši programa bus išbandyta iš kito testavimo modulio, pagrindinėje () funkcijoje nieko nereikia įvesti. Kadangi, atsižvelgiant į problemos būklę, reikia išbandyti Min () funkcijos veikimą. Ir tai bus padaryta iš testavimo modulio. Šiuo metu mūsų programa yra parengta testavimui.
4. Bandymo sukūrimas
Testą sukuria atskiras projektas (projektas) sprendime (Sprendimas). Bandoma programa apie tai nežino. Programa, kuri išbandys (testavimo programą), paskambins bandomosios programos funkcijomis. Mūsų atveju, programa bus vadinama funkcija
int Min (int, int, int);
4.1. Naujo projekto pridėjimas prie sprendimo
Šiam sprendimui („Solution“) turite pridėti naują projektą naudodami komandą
Failas-> Pridėti-> Naujas projektas ...
Naujo projekto kūrimo langas parodytas 3 paveiksle.
Fig. 3. Bandymo projekto tipo projekto sukūrimo langas
Lange pasirinkta Visual C # šablonų grupė -> Test. Iš rodomų šablonų pasirenkamas projekto testo projektas. Lauke „Pavadinimas“ nurodomas projekto pavadinimas, kuris išbandys mūsų programą. Turite nustatyti, pvz., „TestMinApp“. Projektas yra atskirame aplanke „E: Test MinApp“.
Fig. 4. Modulio „UnitTest1.cs“ tekstas. „Solution Explorer“ naudingumo langas, kuriame rodomi „TestMinApp“ ir „MinApp“ projektai
4.2. Sprendimų struktūra
Kaip matyti iš 4 pav., „Solution Explorer“ įrankis rodo „Solution Items“ struktūrą, kurioje yra du projektai:
- projektas „MinApp“. Tai projektas, sukurtas naudojant konsolės programos šabloną su Min () funkcija, kurią norite protestuoti;
- TestMinApp projektas. Šis projektas skirtas patikrinti „MinApp“ projekto ypatybes. Programos kodas, kuris tikrina Min () funkciją, bus įvestas į TestMinApp projekto UnitTest1 projekto failą.
Abu projektai gali būti vykdomi nepriklausomai vienas nuo kito.
4.3. Failo „UnitTest1.cs“ tekstas. Atributai [TestMethod] ir [TestClass]
„TestMinApp“ projekte bandomasis failas „UnitTest1.cs“ yra svarbiausias. Šiame faile yra metodų, kurie išbandys „MinApp“ projekto funkcijas. „TestMinApp“ projekte gali būti bet kokio skaičiaus failų, kuriuose yra bandymų (pvz., „UnitTest2.cs“, „UnitTest3.cs“ ir tt).
„MS Visual Studio 2010“ sukurto „UnitTest1.cs“ failo sąrašas yra toks:
naudojant sistemą; naudojant System.Text; naudojant System.Collections.Generic; naudojant System.Linq; naudojant „Microsoft.VisualStudio.TestTools.UnitTesting“; namespace TestMinApp {/// <summary> /// UnitTest1 /// </ summary> [TestClass] viešoji klasė UnitTest1 {public UnitTest1 () {// // TODO: pridėkite konstruktoriaus logiką čia //} privatus TestContext testContextInstance; /// <summary> /// Gauna arba nustato testo kontekstą. /// </ summary> public TestContext TestContext {get {return testContextInstance; } set {testContextInstance = vertė; }} #region Papildomi testo atributai // galite naudoti testus // // Naudoti ClassInitialize // [ClassInitialize ()] // public static void MyClassInitialize (TestContext testContext) {} // // Naudokite ClassCleanup, kad paleistumėte kodą po to, kai visi bandymai klasėje paleisti // [ClassCleanup ()] // public static void MyClassCleanup () {} // // Naudokite testą paleisti kodą prieš pradedant kiekvieną testą // [TestInitialize ()] // public void MyTestInitialize () {} // // Naudoti „TestCleanup“ ) {} // #endregion [TestMethod] public void TestMethod1 () {// // TODO: čia pridėkite bandomąją logiką //}}}
Kaip matyti iš minėto kodo, faile yra klasė, pavadinta „UnitTest1“. Klasė turi viešą metodą, vadinamą TestMethod1 (). Prieš įdiegiant TestMethod1 () metodą, atributas [TestMethod] yra pateikiamas. Tai reiškia, kad turite įvesti kodą, kuris išbandys „MinApp“ projekto funkcijas metodo korpuse.
Klasėje galite įvesti bet kokį metodą, kuris išbandys skirtingas funkcijas iš įvairių modulių. Svarbiausia, kad šie metodai būtų pažymėti atribute [TestMethod].
4.4. Modulio „UnitTest1“ teksto keitimas. Bandymo metodo pavadinimo keitimas
Galite pakeisti metodų pavadinimus ir pridėti naujus metodus, pažymėtus [TestMethod] atributu modulyje „UnitTest1.cs“. Atsižvelgiant į tai, modulio „UnitTest1.cs“ tekste turite pakeisti TestMethod1 () metodą į TestMin ().
Atlikus pakeitimus, bus sutrumpintas failo „UnitTest1.cs“ modulio tekstas
naudojant sistemą; naudojant System.Text; naudojant System.Collections.Generic; naudojant System.Linq; naudojant „Microsoft.VisualStudio.TestTools.UnitTesting“; namespace TestMinApp {/// <summary> /// UnitTest1 /// </ summary> [TestClass] viešoji klasė UnitTest1 {... [TestMethod] public void TestMin () {// // TODO: pridėti testą logika čia //}}}
4.5. „MinApp“ projekto prijungimas prie „TestMinApp“ projekto
Norint pasiekti „TestMinApp“ projekto Min () funkciją (MinApp projektą), turite prijungti vardų erdvę, kurioje yra ši funkcija.
Norėdami tai padaryti, pirmiausia, turite skambinti konteksto meniu, kad būtų atliktas TestMinApp projektas. Tada kontekstiniame meniu reikia skambinti komandai „Pridėti nuorodą ...“ (5 pav.).
Fig. 5. Komanda „Pridėti nuorodą ...“
Dėl to atsidarys langas Pridėti nuorodą, kurioje reikia pasirinkti „MinApp“ projektą.
Fig. 6. Langas „Pridėti nuorodą“. „MinApp“ projekto sujungimas
Po atliktų veiksmų „MinApp“ projekto funkcijos bus naudojamos „TestMinApp“ projekte.
Fig. 7. Nuorodos skirtukas su prijungtu MinApp projektu
4.6. Modulio „UnitTest1.cs“ teksto keitimas
4.6.1. MinApp vardų vietos pridėjimas prie UnitTest1.cs modulio
Šiame etape modulyje „UnitTest1.cs“ reikia naudoti „MinApp“ vardų erdvę naudodami naudojimo direktyvą:
naudojant sistemą; naudojant System.Text; naudojant System.Collections.Generic; naudojant System.Linq; naudojant „Microsoft.VisualStudio.TestTools.UnitTesting“; naudojant „MinApp“; namespace TestMinApp {...}
4.6.2. TestMin () metodo tekstas
TestMin () metodo tekste įveskite šį kodą:
... [TestMethod] public void TestMin () {// // TODO: čia pridėkite testo logiką // int min; min = programa .Min (3, 4, 5); Atsakymas .Atviras (2, min.); } ...
4.7. UnitTest1.cs modulio tekstas
Viso UnitTest1.cs modulio tekstas yra toks:
naudojant sistemą; naudojant System.Text; naudojant System.Collections.Generic; naudojant System.Linq; naudojant „Microsoft.VisualStudio.TestTools.UnitTesting“; naudojant „MinApp“; namespace TestMinApp {/// <summary> /// UnitTest1 /// </ summary> [TestClass] viešoji klasė UnitTest1 {public UnitTest1 () {// // TODO: pridėkite konstruktoriaus logiką čia //} privatus TestContext testContextInstance; /// <summary> /// Gauna arba nustato testo kontekstą. /// </ summary> public TestContext TestContext {get {return testContextInstance; } set {testContextInstance = vertė; }} #region Papildomi testo atributai // galite naudoti testus // // Naudoti ClassInitialize // [ClassInitialize ()] // public static void MyClassInitialize (TestContext testContext) {} // // Naudokite ClassCleanup, kad paleistumėte kodą po to, kai visi bandymai klasėje paleisti // [ClassCleanup ()] // public static void MyClassCleanup () {} // // Naudokite testą paleisti kodą prieš pradedant kiekvieną testą // [TestInitialize ()] // public void MyTestInitialize () {} // // Naudoti „TestCleanup“ ) {} // #endregion [TestMethod] public void TestMin () {// // TODO: čia pridėkite bandomąją logiką // int min; min = programa .Min (3, 4, 5); Atsakymas .Atviras (2, min.); }}}
5. Vykdykite bandymą ir patikrinkite bandymo rezultatus
Programoje „Microsoft Visual Studio 2010“ atliekamas specialus komandų, vadinamų „Test“, meniu, skirtas darbui su įrenginių testais.
Norėdami paleisti vykdymo testą, pasirinkite vieną iš komandų.
Bandymas -> Vykdyti -> Testai dabartiniame kontekstearba
Bandymas -> Vykdyti -> Visi tirpalai
kaip parodyta 8 paveiksle.
Fig. 8. Skambinkite pradžios bandymo komandai ir peržiūrėkite rezultatą.
Atlikus bandymą, rezultatą galima peržiūrėti lango „Bandymų rezultatai“ apačioje. Kaip matyti iš paveikslo, bandymas nepriimamas. Tai logiška, nes funkcijoje Assert.AreEqual () palyginame skirtingus 2 ir 3 numerius. Čia 2 numeris yra specialiai įvestas vietoj 3.
Jei vietoj skaičiaus 2 įvesite teisingą atsakymą - skaičių 3 (mažiausiai tarp 3, 4, 5), tada testas bus atliktas (9 pav.). Tokiu atveju TestMin () metodo tekstas bus toks:
... [TestMethod] public void TestMin () {// // TODO: čia pridėkite testo logiką // int min; min = programa .Min (3, 4, 5); Atsakymas .Atviras (3, min); } ...
Rezultatų langas parodytas 9 paveiksle.
Fig. 9. Bandymo rezultatas, jei įvesite teisingą atsakymą
Dabar galime daryti išvadą, kad min () funkcija šiuo atveju veikia teisingai.
6. Rezultatas. Projektų sąveika
Šiame darbe sprendime sudaromi du projektai. Viename „MinApp“ projekte yra Min () funkcija, kurią norite išbandyti. Antrasis projektas „TestMinApp“ apima testavimo metodus.
„Microsoft Visual Studio 2010“ kiekvienas projektas pradedamas naudojant skirtingas meniu komandas. Taigi, „MinApp“ projektas yra paleistas standartiniu būdu iš meniu „Vykdyti“. „TestMinApp“ projektas paleistas iš specialiojo „Test“ meniu.