C #. Példa egy egység teszt létrehozására az MS Visual Studio programban

  1. tartalom
  2. végrehajtás
  3. 2. A Program.cs modul szövegének elkészítése
  4. 2.2. Nyissa meg a Program osztályát
  5. 3. A tesztelt program felsorolása
  6. 4. Teszt létrehozása
  7. 4.1. Új projekt hozzáadása a megoldáshoz
  8. 4.2. Megoldásszerkezet
  9. 4.3. Az "UnitTest1.cs" fájl szövege. Attribútumok [TestMethod] és [TestClass]
  10. 4.4. Az UnitTest1 modul szövegének módosítása. A tesztelési módszer nevének módosítása
  11. 4.5. A MinApp projekt csatlakoztatása a TestMinApp projekthez
  12. 4.6. Az UnitTest1.cs modul szövegének módosítása
  13. 4.6.2. TestMin () módszer szöveg
  14. 4.7. UnitTest1.cs modul szöveg
  15. 5. Futtassa a tesztet és ellenőrizze a teszt eredményét
  16. 6. Az eredmény. A projektek közötti kölcsönhatás

Ez a témakör a Microsoft Visual Studio 2010 (C #) programban egy egyszerű egység teszt létrehozásának lépésenkénti folyamatát ismerteti egy olyan alkalmazáshoz, mint a Console Application. Ezzel a példával megtudhatja, hogyan hozhatja létre saját egység tesztjeit. A példa az Assert osztály használatát is mutatja a funkciók tesztelésére.

tartalom

A probléma feltétele

Egy olyan alkalmazás esetében, mint a Console Application, dolgozzon ki egy egység tesztet, amely teszteli a Min () függvény működését, amely meghatározza a három szám maximális elemét.

A Min () függvényben állítsa be a tesztmódszert a TestMin-re (). Ellenőrizze a funkciót.

végrehajtás

1. Hozzon létre egy alkalmazást a Console Applicaiton sablon használatával

Futtatáshoz futtassa az MS Visual Studio 2010 programot, hogy egy projektet a konzolalkalmazás mintájával hozzon létre, a következő parancssorokat kell nevezni:

Fájl -> Új -> Projekt ...

Ennek eredményeként megnyílik az Új projekt ablak. Az ablakban válassza ki az 1. ábrán látható konzolalkalmazás sablont. A sablon a Vizuális C # lapon van kiválasztva.

Visual C # -> Konzol alkalmazás

Visual C # -> Konzol alkalmazás

Ábra. 1. "Új projekt" ablak. A konzolalkalmazás típusának alkalmazása

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

2.1. Add Min () funkciót a modul szövegéhez

A Program osztály testében adja hozzá a Min () függvény szövegét.

A funkció nyilvános (statikus) és nyilvános. Min () függvény szöveg

nyilvános statikus int Min (int a, int b, int c) {int min = a; ha (min> b) min = b; ha (min> c) min = c; vissza min; }

nyilvános statikus int Min (int a, int b, int c) {int min = a;  ha (min> b) min = b;  ha (min> c) min = c;  vissza min;  }

Ábra. 2. Az MS Visual Studio 2010 ablak, a „Program.cs” modul megtekintése

2.2. Nyissa meg a Program osztályát

Ahhoz, hogy hozzáférjen a Program osztály Min () függvényéhez, nyilvánosan elérhetővé kell tennie ezt az osztályt. Ehhez az osztály bejelentése előtt meg kell határoznia a nyilvános kulcsszót.

... névtér MinApp {nyilvános osztályú program {// osztály módszerek // ...}} ...

Ezután készen áll a tesztprogram.

3. A tesztelt program felsorolása

Jelenleg a tesztelt program felsorolása a következő:

a Rendszer használata; a System.Collections.Generic használatával; a System.Linq használatával; a System.Text használatával; névtér MinApp {nyilvános osztály Program {nyilvános statikus int Min (int, int b, int c) {int min = a; ha (min> b) min = b; ha (min> c) min = c; vissza min; } static void Main (string [] args) {Console.WriteLine (az egység-tesztelés demo C #.-ban) "; }}}

Mivel ezt a programot egy másik tesztmodulból tesztelik, a Main () függvényben semmit sem kell beírni. Mert a probléma feltételeinek megfelelően tesztelni kell a Min () funkció működését. Ez a tesztmodulból történik. Jelenleg programunk készen áll a tesztelésre.

4. Teszt létrehozása

A tesztet egy külön projekt (Project) hozza létre a megoldásban (Solution). A tesztelt program nem tud róla. A program, amely teszteli (a tesztprogramot) hívja a tesztelt program funkcióit. Esetünkben a tesztprogram hívja a funkciót

int Min (int, int, int);

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

Ehhez a megoldáshoz (megoldás) hozzá kell adnia egy új projektet a parancs segítségével

Fájl-> Add-> Új projekt ...

Az új projekt létrehozására szolgáló ablak a 3. ábrán látható.

Ábra. 3. Ablak a Tesztprojekt projektjének létrehozásához

A Visual C # sablonok csoportja -> Teszt van kiválasztva az ablakban. A megjelenített sablonok közül a „Tesztprojekt” projekt sablont választja ki. A "Név" mezőben a program nevét tesztelő projekt neve jelenik meg. Be kell állítania például a TestMinApp-ot. A projekt egy "E: Test MinApp" külön mappában található.

A projekt egy E: Test MinApp külön mappában található

Ábra. 4. Az UnitTest1.cs modul szövege. A Solution Explorer segédprogram ablaka a TestMinApp és a MinApp projektekkel

4.2. Megoldásszerkezet

Amint a 4. ábrán látható, a Solution Explorer segédprogram megjeleníti a Solution Items struktúrát, amely két projektet tartalmaz:

  • projekt MinApp. Ez egy olyan projekt, amelyet a konzolalkalmazás sablon segítségével hoztak létre a Min () függvénnyel, amelyet tiltakozni kíván;
  • TestMinApp projekt. A projekt célja a MinApp projekt jellemzőinek tesztelése. A Min () függvényt tesztelő programkódot a TestMinApp projekt UnitTest1 projektfájljába kell beírni.

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

4.3. Az "UnitTest1.cs" fájl szövege. Attribútumok [TestMethod] és [TestClass]

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

Az MS Visual Studio 2010 által létrehozott UnitTest1.cs fájl felsorolása a következő:

a Rendszer használata; a System.Text használatával; a System.Collections.Generic használatával; a System.Linq használatával; a Microsoft.VisualStudio.TestTools.UnitTesting használatával; névtér TestMinApp {/// <summary> /// A UnitTest1 /// összefoglaló leírása / / / <összefoglaló> [TestClass] nyilvános osztály UnitTest1 {nyilvános UnitTest1 () {// // TODO: konstruktori logika hozzáadása itt //} magán TestContext testContextInstance; /// <summary> /// Megadja vagy beállítja a teszt kontextust. /// </ summary> nyilvános TestContext TestContext {get {return testContextInstance; } set {testContextInstance = érték; }} #region További teszt attribútumok // használhatja a teszteket // // ClassInitialize használata // [ClassInitialize ()] // public static void MyClassInitialize (TestContext testContext) {} // // A ClassCleanup használatával futtassa a kódot, miután az összes teszt egy osztályban futott // [ClassCleanup ()] // nyilvános statikus void MyClassCleanup () {} // // TestInitialize használata a kód futtatása az egyes tesztek futtatása előtt // [TestInitialize ()] // public void MyTestInitialize () {} // // Használja a TestCleanup-ot ) {} // #endregion [TestMethod] public void TestMethod1 () {// // TODO: tesztlogika hozzáadása itt //}}}

Amint az a fenti kódból látható, a fájl egy UnitTest1 nevű osztályt tartalmaz. Az osztály nyilvános módszer, a TestMethod1 (). A TestMethod1 () módszer alkalmazása előtt a [TestMethod] attribútum kerül elhelyezésre. Ez azt jelenti, hogy be kell írnia a kódot, amely teszteli a MinApp projekt funkcióit a módszer testében.

Az osztályban bármilyen számú módszert adhat meg, amelyek különböző modulok különböző funkcióit tesztelik. A legfontosabb, hogy ezek a módszerek a [TestMethod] attribútummal vannak jelölve.

4.4. Az UnitTest1 modul szövegének módosítása. A tesztelési módszer nevének módosítása

Módosíthatja a módszerek nevét és új módszereket adhat meg, amelyek az [TestMethod] attribútummal vannak jelölve az UnitTest1.cs modulban. Ezt figyelembe véve az UnitTest1.cs modul szövegében át kell neveznie a TestMethod1 () metódust TestMin-re ().

A módosítások elvégzése után az UnitTest1.cs fájl moduljának rövidített szövege:

a Rendszer használata; a System.Text használatával; a System.Collections.Generic használatával; a System.Linq használatával; a Microsoft.VisualStudio.TestTools.UnitTesting használatával; névtér TestMinApp {/// <summary> /// A UnitTest1 /// </ summary> [TestClass] nyilvános osztály UnitTest1 {... [TestMethod] nyilvános void TestMin () {// // TODO: teszt hozzáadása logika itt //}}}

4.5. A MinApp projekt csatlakoztatása a TestMinApp projekthez

Ahhoz, hogy hozzáférjen a Min () függvényhez (MinApp projekt) a TestMinApp projektből, csatlakoztatnia kell azt a névteret, amelyben ez a funkció található.

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

ábra)

Ábra. 5. Csapat "Referencse hozzáadása ..."

Ennek eredményeként megnyílik az Add Reference ablak, amelyben ki kell választania a MinApp projektet.

Ábra. 6. "Referencia hozzáadása" ablak. A MinApp projekt csatlakoztatása

A befejezett műveletek után a MinApp projektfunkciók elérhetővé válnak a TestMinApp projektben.

A befejezett műveletek után a MinApp projektfunkciók elérhetővé válnak a TestMinApp projektben

Ábra. 7. Referenciák fül a csatlakoztatott MinApp projekthez

4.6. Az UnitTest1.cs modul szövegének módosítása
4.6.1. A MinApp névtér hozzáadása az UnitTest1.cs modulhoz

Ebben a lépésben az UnitTest1.cs modulban hozzá kell adnia a MinApp névteret a felhasználási irányelv használatával:

a Rendszer használata; a System.Text használatával; a System.Collections.Generic használatával; a System.Linq használatával; a Microsoft.VisualStudio.TestTools.UnitTesting használatával; MinApp használatával; névtér TestMinApp {...}

4.6.2. TestMin () módszer szöveg

A TestMin () módszer szövegében írja be a következő kódot:

... [TestMethod] public void TestMin () {// // TODO: Tesztlogika hozzáadása itt // int min; min = Program .Min (3, 4, 5); Assert .AreEqual (2, min); } ...

4.7. UnitTest1.cs modul szöveg

A teljes UnitTest1.cs modul szövege a következő:

a Rendszer használata; a System.Text használatával; a System.Collections.Generic használatával; a System.Linq használatával; a Microsoft.VisualStudio.TestTools.UnitTesting használatával; MinApp használatával; névtér TestMinApp {/// <summary> /// A UnitTest1 /// összefoglaló leírása / / / <összefoglaló> [TestClass] nyilvános osztály UnitTest1 {nyilvános UnitTest1 () {// // TODO: konstruktori logika hozzáadása itt //} magán TestContext testContextInstance; /// <summary> /// Megadja vagy beállítja a teszt kontextust. /// </ summary> nyilvános TestContext TestContext {get {return testContextInstance; } set {testContextInstance = érték; }} #region További teszt attribútumok // használhatja a teszteket // // ClassInitialize használata // [ClassInitialize ()] // public static void MyClassInitialize (TestContext testContext) {} // // A ClassCleanup használatával futtassa a kódot, miután az összes teszt egy osztályban futott // [ClassCleanup ()] // nyilvános statikus void MyClassCleanup () {} // // TestInitialize használata a kód futtatása az egyes tesztek futtatása előtt // [TestInitialize ()] // public void MyTestInitialize () {} // // Használja a TestCleanup-ot ) {} // #endregion [TestMethod] public void TestMin () {// // TODO: Tesztlogika hozzáadása itt // 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 programban a Test tesztekkel végzett munkához egy speciális menüt választanak a Test nevű parancsok közül.

Egy végrehajtási teszt futtatásához válassza ki az egyik parancsot.

Teszt -> Futtatás -> Tesztek az aktuális kontextusban

vagy

Teszt -> Futtatás -> Minden Megoldás teszt

a 8. ábrán látható.

Ábra. 8. Hívja a start teszt parancsot és tekintse meg az eredményt.

A teszt futtatása után az eredmény megtekinthető a Teszteredmények ablak alján. Amint az az ábrán látható, a tesztet nem hajtjuk végre. Ez logikus, mivel az Assert.AreEqual () függvényben összehasonlítjuk a 2-es és 3-as számokat, amelyek eltérőek. Itt a 2-et a 3 helyett külön-külön bevezetjük.

Ha a 2-es helyett a helyes választ adja meg - a 3. számot (minimum 3, 4, 5), akkor a teszt megtörténik (9. ábra). Ebben az esetben a TestMin () módszer szövege a következő lesz:

... [TestMethod] public void TestMin () {// // TODO: Tesztlogika hozzáadása itt // int min; min = Program .Min (3, 4, 5); Assert .AreEqual (3, min); } ...

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

Ábra. 9. Ha a helyes választ adja meg, ellenőrizze az eset eredményét

Most arra a következtetésre juthatunk, hogy a Min () függvény helyesen működik.

6. Az eredmény. A projektek közötti kölcsönhatás

Ebben a tanulmányban két projekt jön létre a megoldásban. Az egyik MinApp projekt tartalmazza a tesztelni kívánt Min () függvényt. A második TestMinApp projekt tesztelési módszereket tartalmaz.

A Microsoft Visual Studio 2010 programban minden projekt különböző menüparancsokkal indítható. Tehát a MinApp projekt normál módon indul a Futtatás menüből. A TestMinApp projekt pedig a speciális teszt menüből indul.

Kapcsolódó témák