- tartalom
- végrehajtás
- 2. A Program.cs modul szövegének elkészítése
- 2.2. Nyissa meg a Program osztályát
- 3. A tesztelt program felsorolása
- 4. Teszt létrehozása
- 4.1. Új projekt hozzáadása a megoldáshoz
- 4.2. Megoldásszerkezet
- 4.3. Az "UnitTest1.cs" fájl szövege. Attribútumok [TestMethod] és [TestClass]
- 4.4. Az UnitTest1 modul szövegének módosítása. A tesztelési módszer nevének módosítása
- 4.5. A MinApp projekt csatlakoztatása a TestMinApp projekthez
- 4.6. Az UnitTest1.cs modul szövegének módosítása
- 4.6.2. TestMin () módszer szöveg
- 4.7. UnitTest1.cs modul szöveg
- 5. Futtassa a tesztet és ellenőrizze a teszt eredményét
- 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
Á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; }
Á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ó.
Á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. 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.
Á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 kontextusbanvagy
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.