• Главная
  • Карта сайта
Не найдено

C #. Primjer stvaranja testa jedinice u MS Visual Studio

  1. sadržaj
  2. izvršenje
  3. 2. Priprema teksta modula Program.cs
  4. 2.2. Učinite javnu klasu programa
  5. 3. Popis testiranog programa
  6. 4. Izrada testa
  7. 4.1. Dodavanje novog projekta u rješenje
  8. 4.2. Struktura otopine
  9. 4.3. Tekst datoteke "UnitTest1.cs". Atributi [TestMethod] i [TestClass]
  10. 4.4. Unošenje izmjena u tekst modula UnitTest1. Promjena naziva metode testiranja
  11. 4.5. Povezivanje projekta MinApp s projektom TestMinApp
  12. 4.6. Unošenje izmjena u tekst modula UnitTest1.cs
  13. 4.6.2. TestMin () tekstni metod
  14. 4.7. Tekst modula UnitTest1.cs
  15. 5. Pokrenite test i provjerite rezultat testa
  16. 6. Rezultat. Interakcija između projekata

Ova tema opisuje postupak izrade jednostavnog testa jedinice u Microsoft Visual Studio 2010 (C #) za aplikaciju kao što je konzolna aplikacija. Na ovom primjeru možete naučiti kako izraditi vlastite testove jedinica. Primjer također pokazuje korištenje klase Assert za testiranje rada funkcija.

sadržaj

Stanje problema

Za aplikaciju kao što je konzolna aplikacija, razvite test jedinice koji testira rad funkcije Min (), koja određuje maksimalni element od tri broja.

Za funkciju Min () postavite testnu metodu na TestMin (). Provjerite funkciju.

izvršenje

1. Izradite aplikaciju pomoću predloška aplikacije Konzola

Pokrenite MS Visual Studio 2010 za izvršavanje.Za izradu projekta pomoću obrasca konzolne aplikacije, mora se pozvati sljedeći slijed naredbi:

Datoteka -> Novo -> Projekt ...

Stoga se otvara prozor Novi projekt. U prozoru odaberite predložak aplikacije konzole kao što je prikazano na slici 1. Predložak je odabran na kartici Visual C #.

Visual C # -> konzolna aplikacija

Visual C # -> konzolna aplikacija

Sl. 1. Prozor "Novi projekt". Odabir primjene konzolne aplikacije

2. Priprema teksta modula Program.cs

2.1. Dodaj Min () funkciju u tekst modula

Tekst funkcije Min () treba dodati u tijelo klase programa.

Funkcija je deklarirana kao javna (statična) i javna. Min () tekstualni tekst

javna statička int Min (int a, int b, int c) {int min = a; ako (min> b) min = b; ako (min> c) min = c; povratak min; }

javna statička int Min (int a, int b, int c) {int min = a;  ako (min> b) min = b;  ako (min> c) min = c;  povratak min;  }

Sl. 2. Pregled prozora MS Visual Studio 2010, modul “Program.cs”

2.2. Učinite javnu klasu programa

Da biste imali pristup Min () funkciji klase Programa, morate učiniti ovu klasu javno dostupnom. Da biste to učinili, prije deklariranja klase morate definirati javnu ključnu riječ.

... prostor imena MinApp {javna klasa Program {// metode klasa // ...}} ...

Nakon toga, test program je spreman.

3. Popis testiranog programa

U ovom trenutku, popis programa koji se testira je sljedeći:

pomoću sustava; pomoću System.Collections.Generic; pomoću System.Linq; pomoću System.Text; imenski prostor MinApp {javna klasa Program {javna statična int Min (int a, int b, int c) {int min = a; ako (min> b) min = b; ako (min> c) min = c; povratak min; } static void Main (string [] args) {Console.WriteLine ("Demo testiranja jedinica u C #."); }}}

Budući da će ovaj program biti testiran iz drugog testnog modula, nema potrebe unositi ništa drugo u Main () funkciju. Budući da, u skladu s uvjetom problema, trebate testirati rad funkcije Min (). A to će biti učinjeno iz modula za testiranje. Trenutno je naš program spreman za testiranje.

4. Izrada testa

Test se kreira posebnim projektom (Project) u rješenju (Solution). Program koji se testira ne zna za to. Program koji će testirati (program testiranja) će pozvati funkcije programa koji se testira. U našem slučaju test program će pozvati funkciju

int Min (int, int, int);

4.1. Dodavanje novog projekta u rješenje

Za ovo rješenje (rješenje) morate dodati novi projekt pomoću naredbe

Datoteka-> Dodaj-> Novi projekt ...

Prozor za stvaranje novog projekta prikazan je na slici 3.

Sl. 3. Prozor za izradu projekta tipa testnog projekta

U prozoru je odabrana grupa Visual C # predložaka -> Test. Iz prikazanih predložaka odabran je predložak projekta "Test Project". U polje "Ime" označava se naziv projekta koji će testirati naš program. Morate postaviti, na primjer, TestMinApp. Projekt se nalazi u zasebnoj mapi "E: Test MinApp".

Projekt se nalazi u zasebnoj mapi E: Test MinApp

Sl. 4. Tekst modula UnitTest1.cs. Prozor programa Solution Explorer s prikazanim projektima TestMinApp i MinApp

4.2. Struktura otopine

Kao što se može vidjeti na slici 4, uslužni program Solution Explorer prikazuje strukturu stavki rješenja koja sadrži dva projekta:

  • projekt MinApp. Ovo je projekt stvoren pomoću predloška aplikacije konzole s funkcijom Min () koju želite protestirati;
  • Projekt TestMinApp. Ovaj projekt je osmišljen kako bi testirao značajke projekta MinApp. Programski kod koji testira funkciju Min () bit će unesen u datoteku projekta UnitTest1 projekta TestMinApp.

Oba projekta mogu se provoditi neovisno jedan o drugom.

4.3. Tekst datoteke "UnitTest1.cs". Atributi [TestMethod] i [TestClass]

U projektu TestMinApp testna datoteka UnitTest1.cs je od primarnog interesa. Ova datoteka sadrži metode koje će testirati funkcije MinApp projekta. Projekt TestMinApp može sadržavati bilo koji broj datoteka koje sadrže testove (na primjer, UnitTest2.cs, UnitTest3.cs, itd.).

Popis datoteke UnitTest1.cs koju generira MS Visual Studio 2010 je sljedeći:

pomoću sustava; pomoću System.Text; pomoću System.Collections.Generic; pomoću System.Linq; pomoću Microsoft.VisualStudio.TestTools.UnitTesting; namespace TestMinApp {/// <summary> /// Sažeti opis za UnitTest1 /// </ summary> [TestClass] javna klasa UnitTest1 {public UnitTest1 () {// // TODO: Dodaj logiku konstruktora ovdje //} privatni TestContext testContextInstance; /// <summary> /// Dobiva ili postavlja kontekst testa. /// </ summary> public TestContext TestContext {dobiti {vratiti testContextInstance; } set {testContextInstance = vrijednost; }} #region Dodatni testni atributi // možete koristiti testove // ​​// Upotrebiti ClassInitialize // [ClassInitialize ()] // public static voID za pokretanje koda prije pokretanja svakog testa // [TestInitialize ()] // public void MyTestInitialize () {} // // Koristite TestCleanup za pokretanje koda nakon što je svaki test pokrenut // [TestCleanup ()] // public void MyTestCleanup () ) {} // #endregion [TestMethod] public void TestMethod1 () {// // TODO: ovdje dodajte probnu logiku //}}}

Kao što se može vidjeti iz gornjeg koda, datoteka sadrži klasu pod nazivom UnitTest1. Klasa ima javnu metodu pod nazivom TestMethod1 (). Prije implementacije metode TestMethod1 (), postavljen je atribut [TestMethod]. To znači da morate unijeti kod koji će testirati funkcije MinApp projekta u tijelu metode.

U razredu možete unijeti bilo koji broj metoda koje će testirati različite funkcije iz različitih modula. Glavno je da su ove metode označene atributom [TestMethod].

4.4. Unošenje izmjena u tekst modula UnitTest1. Promjena naziva metode testiranja

Možete promijeniti imena metoda i dodati nove metode koje su označene s [TestMethod] atributom u UnitTest1.cs modulu. S obzirom na to, u tekstu modula UnitTest1.cs, trebate preimenovati metodu TestMethod1 () u TestMin ().

Nakon izmjena skraćeni tekst modula datoteke UnitTest1.cs bit će:

pomoću sustava; pomoću System.Text; pomoću System.Collections.Generic; pomoću System.Linq; pomoću Microsoft.VisualStudio.TestTools.UnitTesting; namespace TestMinApp {/// <summary> /// Sažeti opis za UnitTest1 /// </ summary> [TestClass] javna klasa UnitTest1 {... [TestMethod] public void TestMin () {// // TODO: Dodaj test logika ovdje //}}}

4.5. Povezivanje projekta MinApp s projektom TestMinApp

Da biste imali pristup Min () funkciji (MinApp projekt) iz projekta TestMinApp, morate povezati prostor imena u kojem se ova funkcija nalazi.

Da biste to učinili, prvo morate pozvati kontekstni izbornik za TestMinApp projekt. Zatim u kontekstnom izborniku trebate nazvati naredbu “Add Reference ...” (Slika 5).

” (Slika 5)

Sl. 5. Tim "Dodaj reference ..."

Kao rezultat, otvorit će se prozor Add Reference u kojem morate odabrati MinApp projekt.

Sl. 6. Prozor "Dodaj referencu". Povezivanje projekta MinApp

Nakon dovršenih radnji, funkcije MinApp projekta bit će dostupne za korištenje u projektu TestMinApp.

Nakon dovršenih radnji, funkcije MinApp projekta bit će dostupne za korištenje u projektu TestMinApp

Sl. 7. Kartica Reference s povezanim MinApp projektom

4.6. Unošenje izmjena u tekst modula UnitTest1.cs
4.6.1. Dodavanje prostora naziva MinApp u modul UnitTest1.cs

U ovom koraku, u UnitTest1.cs modulu, morate dodati MinApp imenski prostor koristeći direktivu using: \ t

pomoću sustava; pomoću System.Text; pomoću System.Collections.Generic; pomoću System.Linq; pomoću Microsoft.VisualStudio.TestTools.UnitTesting; koristeći MinApp; namespace TestMinApp {...}

4.6.2. TestMin () tekstni metod

U tekstu metode TestMin () unesite sljedeći kôd:

... [TestMethod] public void TestMin () {// // TODO: Dodaj testnu logiku ovdje // int min; min = Program. Min (3, 4, 5); Assert .AreEqual (2, min); } ...

4.7. Tekst modula UnitTest1.cs

Tekst cijelog UnitTest1.cs modula je sljedeći:

pomoću sustava; pomoću System.Text; pomoću System.Collections.Generic; pomoću System.Linq; pomoću Microsoft.VisualStudio.TestTools.UnitTesting; koristeći MinApp; namespace TestMinApp {/// <summary> /// Sažeti opis za UnitTest1 /// </ summary> [TestClass] javna klasa UnitTest1 {public UnitTest1 () {// // TODO: Dodaj logiku konstruktora ovdje //} privatni TestContext testContextInstance; /// <summary> /// Dobiva ili postavlja kontekst testa. /// </ summary> public TestContext TestContext {dobiti {vratiti testContextInstance; } set {testContextInstance = vrijednost; }} #region Dodatni testni atributi // možete koristiti testove // ​​// Upotrebiti ClassInitialize // [ClassInitialize ()] // public static voID za pokretanje koda prije pokretanja svakog testa // [TestInitialize ()] // public void MyTestInitialize () {} // // Koristite TestCleanup za pokretanje koda nakon što je svaki test pokrenut // [TestCleanup ()] // public void MyTestCleanup () ) {} // #endregion [TestMethod] public void TestMin () {// // TODO: ovdje dodajte logiku testa // int min; min = Program. Min (3, 4, 5); Assert .AreEqual (2, min); }}}

5. Pokrenite test i provjerite rezultat testa

U Microsoft Visual Studio 2010, poseban izbornik naredbi pod nazivom Test je implementiran za rad s testovima jedinice.

Da biste pokrenuli test izvršenja, odaberite jednu od naredbi.

Test -> Pokreni -> Testovi u trenutnom kontekstu

ili

Test -> Pokreni -> Svi testovi u rješenju

kao što je prikazano na slici 8.

Sl. 8. Pozovite naredbu za pokretanje testa i pogledajte rezultat.

Nakon pokretanja testa, rezultat se može vidjeti na dnu prozora Testni rezultati. Kao što se može vidjeti iz slike, test nije prošao. To je logično, jer u funkciji Assert.AreEqual () uspoređujemo brojeve 2 i 3, koji su različiti. Ovdje je umjesto 2 posebno uveden broj 2.

Ako umjesto broja 2 unesete točan odgovor - broj 3 (najmanje između 3, 4, 5), test će se proći (slika 9). U ovom slučaju, tekst metode TestMin () bit će sljedeći:

... [TestMethod] public void TestMin () {// // TODO: Dodaj testnu logiku ovdje // int min; min = Program. Min (3, 4, 5); Assert .AreEqual (3, min); } ...

Prozor rezultata prikazan je na slici 9. \ t

Sl. 9. Rezultat testa za slučaj, ako unesete točan odgovor

Sada možemo zaključiti da funkcija Min () za ovaj slučaj radi ispravno.

6. Rezultat. Interakcija između projekata

U ovom radu, u rješenju se formiraju dva projekta. Jedan MinApp projekt sadrži Min () funkciju koju želite testirati. Drugi projekt, TestMinApp, sadrži metode testiranja.

U Microsoft Visual Studio 2010, svaki projekt se pokreće koristeći različite naredbe izbornika. Dakle, MinApp projekt se pokreće na standardni način iz izbornika Pokreni. Projekt TestMinApp pokrenut je iz posebnog Test izbornika.

Srodne teme

Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью