<
  • Главная
Статьи

C #. Vieneto testo sukūrimo pavyzdys MS Visual Studio

  1. Turinys
  2. Vykdymas
  3. 2. Modulio teksto „Program.cs“ parengimas
  4. 2.2. Padarykite programos klasę viešai
  5. 3. Bandomosios programos sąrašas
  6. 4. Bandymo sukūrimas
  7. 4.1. Naujo projekto pridėjimas prie sprendimo
  8. 4.2. Sprendimų struktūra
  9. 4.3. Failo „UnitTest1.cs“ tekstas. Atributai [TestMethod] ir [TestClass]
  10. 4.4. Modulio „UnitTest1“ teksto keitimas. Bandymo metodo pavadinimo keitimas
  11. 4.5. „MinApp“ projekto prijungimas prie „TestMinApp“ projekto
  12. 4.6. Modulio „UnitTest1.cs“ teksto keitimas
  13. 4.6.2. TestMin () metodo tekstas
  14. 4.7. UnitTest1.cs modulio tekstas
  15. 5. Vykdykite bandymą ir patikrinkite bandymo rezultatus
  16. 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“

„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; }

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“.

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.

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 kontekste

arba

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.

Susijusios temos



Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью