ez a témakör a Microsoft Visual Studio 2010 (C#) konzolalkalmazás legegyszerűbb egységtesztjének lépésről lépésre történő létrehozásának folyamatát ismerteti. Ezzel a példával megtanulhatja, hogyan hozhat létre saját Egységteszteket. A példa azt is bemutatja, hogyan kell használni az Assert osztályt a teszteléshez.

Tartalom

  • Feladat
  • Utasítás
    • 1. Hozzon létre egy alkalmazást a konzol Alkalmazássablon
    • 2 használatával. A Program szövegének elkészítése.cs modul
      • 2.1. A Min() függvény hozzáadása
      • 2.2. Tegye nyilvánossá a Programosztályt
    • 3. A vizsgált program felsorolása
    • 4. Teszt létrehozása
      • 4.1. Új Projekt hozzáadása a megoldáshoz
      • 4.2. Az oldat szerkezete
      • 4.3. Program kódja ” UnitTest1.cs ” fájl. Attribútumok és
      • 4.4. Változások a szövegben UnitTest1.cs modul. A vizsgálati módszer nevének megváltoztatása
      • 4.5. A MinApp projekt csatlakoztatása a TestMinApp projekthez
      • 4.6. Az egység módosítása1.cs modul szövege
        • 4.6.1. A MinApp névtér hozzáadása a UnitTest1-hez.cs
        • 4.6.2. A TestMin () módszer szövege
      • 4.7. A szöveg UnitTest1.cs modul
    • 5. Futtassa a tesztet és ellenőrizze a vizsgálati eredményt
    • 6. Az eredmény. Projektek közötti interakció
  • kapcsolódó témák

keresés más weboldalakon:

feladat

konzolos alkalmazástípus esetén dolgozzon ki egy Egységtesztet, amely teszteli a Min() függvényt. A Min () függvényhez állítsa be a TestMin() vizsgálati módszert. Tesztelje a funkciók eredményét.

utasítás

1. Hozzon létre egy alkalmazást a

konzol Alkalmazássablon használatával futtassa az MS Visual Studio 2010 programot. Projekt létrehozásához a konzol Alkalmazássablon használatával meg kell hívnia a következő parancssort:

File -> New -> Project...

ennek eredményeként megnyílik az új Projektablak. Az ablakban válassza ki a” konzol alkalmazás ” sablont az 1.ábrán látható módon. A sablon a Visual C# lapon van kiválasztva.

 C#. Windows Űrlapok. Az" új projekt " ablak. A "konzol alkalmazás "kiválasztása"

1. ábra. Az” új projekt ” ablak. A “konzol alkalmazás “kiválasztása”

2. A Program szövegének elkészítése.cs modul

2.1. A Min() függvény hozzáadása

a Programosztály törzsébe hozzá kell adnia a Min() függvény szövegét. A függvény nyilvános és statikus. A Min() függvény szövege

 C#. Az MS Visual Studio ablak, a modul " Program.cs"

2. ábra. Az MS Visual Studio ablak, a modul ” Program.cs”

2.2. Tegye nyilvánossá a Programosztályt

a Programosztály Min() függvényének eléréséhez ezt az osztályt nyilvánossá kell tennie. Ehhez az osztály deklarációja előtt be kell állítania a nyilvános kulcsszót.

...namespace MinApp{ public class Program { // методы класса // ... }}...

ezután a tesztelt program készen áll.

3. A vizsgált program felsorolása

jelenleg a vizsgált program programkódja a következő:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace MinApp{ public class Program { public static int Min(int a, int b, int c) { int min = a; if (min > b) min = b; if (min > c) min = c; return min; } static void Main(string args) { Console.WriteLine("Demo of Unit-testing in C#."); } }}

mivel ezt a programot egy másik tesztmodulból tesztelik, akkor a Main() függvényben nem kell mást beírnia. Mivel a feladat állapotának megfelelően meg kell vizsgálnia a Min() funkció működését. Ez pedig már megtörténik a tesztmodulból. Jelenleg programunk készen áll a tesztelésre.

4. Teszt létrehozása

a tesztet egy külön projekt hozza létre a megoldásban. Az Ön által tesztelt program nem tud erről. A tesztprogram, amely tesztelni fogja, felhívja a tesztelt program funkcióit. Esetünkben a tesztprogram felhívja a funkciót

int Min(int, int, int);

4.1. Új Projekt hozzáadása a megoldáshoz

ehhez a megoldáshoz egy új projekt kerül hozzáadásra a

File->Add->New Project...

paranccsal az új projekt létrehozásának ablaka a 3. ábrán látható.

 C#. Windows Forms Alkalmazás. A

típusú projekt létrehozásának ablaka 3.ábra. A tesztprojekt típusú projekt létrehozásának ablaka

az ablakban ki kell választania a sablonok csoportot

Visual C# -> Test

a megjelenített sablonok közül a “tesztprojekt” projektsablon van kiválasztva. A” Név ” mező jelzi annak a projektnek a nevét, amely teszteli a programunkat. Be kell állítania például a TestMinApp alkalmazást. A projekt külön mappában található “E:\Test\MinApp”.

 C#. A " UnitTest1.cs " fájl. A Solution Explorer ablak a TestMinApp és MinApp projektekkel

4.ábra. A ” UnitTest1.cs ” fájl. Megjelenik a Solution Explorer ablak a TestMinApp és MinApp projektekkel

4.2. A megoldás felépítése

mint a 4. ábrán látható, a Solution Explorer megjeleníti a Megoldáselemek szerkezetét, amely két projektet tartalmaz:

  • a MinApp projekt. Ez egy olyan projekt, amelyet a “Console Application” sablonnal hoztak létre a tesztelendő Min() funkcióval;
  • a TestMinApp projekt. Ez a projekt a MinApp projekt funkcióinak tesztelésére szolgál. A Min() függvényt tesztelő programkód hozzáadódik a TestMinApp projekt unittest1 projektfájljához.

mindkét projekt végrehajtható egymástól függetlenül.

4.3. Program kódja ” UnitTest1.cs ” fájl. Attribútumok és

a TestMinApp projektben, a UnitTest1.CS teszt fájl elsődleges érdeke. Ez a fájl olyan módszereket tartalmaz, amelyek tesztelik a MinApp projekt funkcióit. A TestMinApp projekt tetszőleges számú tesztet tartalmazó fájlt tartalmazhat (például UnitTest2.cs, UnitTest3.cs, stb.).

Program kódja “UnitTest1.cs ” fájl által generált MS Visual Studio 2010, a következő:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;namespace TestMinApp{ /// <summary> /// Summary description for UnitTest1 /// </summary> public class UnitTest1 { public UnitTest1() { // // TODO: Add constructor logic here // } private TestContext testContextInstance; /// <summary> ///Gets or sets the test context which provides ///information about and functionality for the current test run. ///</summary> public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } #region Additional test attributes // // You can use the following additional attributes as you write your tests: // // Use ClassInitialize to run code before running the first test in the class // // public static void MyClassInitialize(TestContext testContext) { } // // Use ClassCleanup to run code after all tests in a class have run // // public static void MyClassCleanup() { } // // Use TestInitialize to run code before running each test // // public void MyTestInitialize() { } // // Use TestCleanup to run code after each test has run // // public void MyTestCleanup() { } // #endregion public void TestMethod1() { // // TODO: Add test logic here // } }}

amint a fenti kódból látható, a fájl egy unittest1 nevű osztályt tartalmaz. Az osztály magában foglalja a TestMethod1 () nevű nyilvános módszert.A Testmethod 1() metódus végrehajtása előtt az attribútum kerül elhelyezésre. Ez azt jelenti, hogy a szervezetben a módszer kell írni kódot, amely teszteli a funkciók MinApp projekt.

az osztályban tetszőleges számú módszert adhat meg, amelyek különböző modulok különböző funkcióit tesztelik. A lényeg az, hogy ezek a módszerek, ahol észre az attribútum .

4.4. Változások a szövegben UnitTest1.cs modul. A tesztelési módszer nevének módosítása

megváltoztathatja a módszerneveket, és új módszereket adhat hozzá, amelyek az attribútummal vannak megjelölve a UnitTest1-ben.cs modul. Ezt szem előtt tartva, a UnitTest1.cs, a TestMethod1 () metódust át kell nevezni TestMin () – re.

a módosítások elvégzése után a UnitTest1 rövidített szövege.cs fájl modul fog kinézni:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;namespace TestMinApp{ /// <summary> /// Summary description for UnitTest1 /// </summary> public class UnitTest1 { ... public void TestMin() { // // TODO: Add test logic here // } }}

4.5. A MinApp projekt csatlakoztatása a TestMinApp projekthez

a Min() függvény (A MinApp projekt) eléréséhez a TestMinApp projektből be kell szerelnie azt a névteret, amelyben ez a funkció deklarálva van.

ehhez először meg kell hívnia a TestMinApp projekt helyi menüjét. Ezután a helyi menüben meg kell hívnia a “Hivatkozás hozzáadása …” parancsot (5.ábra).

 C#. Egység-teszt létrehozása. A " Hivatkozás Hozzáadása..."parancs

5.ábra. A” Hivatkozás hozzáadása… ” parancs

ennek eredményeként megnyílik a “Hivatkozás hozzáadása” ablak, amelyben kiválasztja a MinApp projektet.

 C#. Egység-teszt a "referencia hozzáadása" ablak létrehozása. MinApp projekt kapcsolat

6.ábra. A “Hivatkozás hozzáadása” ablak. MinApp project connection

a végrehajtott műveletek után a MinApp projekt funkciói elérhetők lesznek a TestMinApp projektben.

 C#. Windows Forms Alkalmazás. A" referenciák " fül a csatlakoztatott MinApp projekttel

7.ábra. A” referenciák ” fül a csatlakoztatott MinApp projekttel

4.6. Az egység módosítása1.cs modul szövege
4.6.1. A MinApp névtér hozzáadása a UnitTest1-hez.cs

ebben a lépésben hozzá kell adnia a MinApp névteret az UnitTest1-hez.A ‘using’ irányelvet használó cs:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;using MinApp;namespace TestMinApp{ ...}

4.6.2. A TestMin() módszer szövege

a TestMin() módszer szövegében meg kell adnia a következő kódot:

...public void TestMin(){ // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(2, min);}...

4.7. A szöveg UnitTest1.cs modul

az összes egység szövege1.a cs modul a következő:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;using MinApp;namespace TestMinApp{ /// <summary> /// Summary description for UnitTest1 /// </summary> public class UnitTest1 { public UnitTest1() { // // TODO: Add constructor logic here // } private TestContext testContextInstance; /// <summary> ///Gets or sets the test context which provides ///information about and functionality for the current test run. ///</summary> public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } #region Additional test attributes // // You can use the following additional attributes as you write your tests: // // Use ClassInitialize to run code before running the first test in the class // // public static void MyClassInitialize(TestContext testContext) { } // // Use ClassCleanup to run code after all tests in a class have run // // public static void MyClassCleanup() { } // // Use TestInitialize to run code before running each test // // public void MyTestInitialize() { } // // Use TestCleanup to run code after each test has run // // public void MyTestCleanup() { } // #endregion public void TestMin() { // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(2, min); } }}

5. Futtassa a tesztet és ellenőrizze a teszt eredményét

a Microsoft Visual Studio 2010-ben az Egységtesztekhez egy speciális ‘Test’ menü kerül végrehajtásra.

a teszt futtatásához ki kell választania a

Test -> Run -> Tests in Current Context

vagy

Test -> Run -> All Tests in Solution

parancsok egyikét a 8.ábrán látható módon.

 C#. Egység-teszt létrehozása. A teszt parancs meghívása és az eredmény megtekintése

8.ábra. A teszt parancs meghívása és az eredmény megtekintése

a teszt megkezdése után az eredmény megtekinthető a bal oldalon a Test Explorer ablakban. Amint az a 8. ábrán látható, a teszt nem telt el. Ez logikus,mert az Assert függvényben.AreEqual() összehasonlítjuk a 2 és 3 számokat, amelyek különböznek. Itt a 2. szám kifejezetten a 3.szám helyett kerül beírásra.

ha a 2. szám helyett a helyes választ adja meg-3. szám (minimum 3, 4, 5 között), akkor a tesztet benyújtják (9.ábra). Ebben az esetben a TestMin() módszer szövege a következő lesz:

...public void TestMin(){ // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(3, min);}...

az eredményablak a 9. ábrán látható.

 C#. Egység-teszt létrehozása. Vizsgálati eredmény abban az esetben, ha megadja a helyes választ

9.ábra. Teszteredmény arra az esetre, amikor a helyes választ adja meg

most arra a következtetésre juthatunk, hogy a Min() függvény megfelelően működik ebben az esetben.

6. Az eredmény. Projektek közötti interakció

ebben a feladatban a megoldás két projektet foglal magában. Egy MinApp projekt tartalmazza a min () függvényt kell tesztelni. A második TestMinApp projekt vizsgálati módszereket tartalmaz. A Microsoft Visual Studio 2010 programban az egyes projektek különféle menüparancsokkal futnak. Tehát a MinApp projekt a szokásos módon fut a Futtatás menüből. A TestMinApp projekt pedig egy speciális ‘teszt’ menüből indul.

Leave a comment

Az e-mail-címet nem tesszük közzé.