Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a témakör bemutatja, hogyan használható a Használatból generálás funkció, amely támogatja az első tesztelési fejlesztést.
Az első tesztelési fejlesztés a szoftvertervezés egyik megközelítése, amelyben először termékspecifikációk alapján kell egységteszteket írni, majd megírni a tesztek sikerességéhez szükséges forráskódot. A Visual Studio támogatja az első tesztelési fejlesztést azáltal, hogy új típusokat és tagokat hoz létre a forráskódban, amikor először hivatkozik rájuk a tesztesetekben, mielőtt definiálja őket.
A Visual Studio minimális megszakítással hozza létre az új típusokat és tagokat a munkafolyamatban. Típusokhoz, metódusokhoz, tulajdonságokhoz, mezőkhöz vagy konstruktorokhoz létrehozhat csonkokat anélkül, hogy elhagyná az aktuális helyet a kódban. Amikor megnyit egy párbeszédpanelt a típusgenerálási lehetőségek megadásához, a fókusz azonnal visszakerül az aktuális megnyitott fájlba, amikor a párbeszédpanel bezárul.
A Használatból generálás funkció a Visual Studióval integrálható tesztelési keretrendszerekkel használható. Ebben a témakörben a Microsoft egységtesztelési keretrendszerét mutatjuk be.
Megjegyzés:
A cikkben található utasítások a Visual Studióban elérhető interaktív fejlesztési felület (IDE) legújabb verzióját mutatják be. Előfordulhat, hogy a számítógép különböző neveket vagy helyeket jelenít meg a felhasználói felület egyes elemeihez. Előfordulhat, hogy a Visual Studio egy másik verzióját vagy különböző környezeti beállításokat használ. További információ: Ideszemélyre szabása.
Windows Osztálytár projekt és tesztprojekt létrehozása
C# vagy Visual Basic nyelven hozzon létre egy új Windows Osztálytár projektet. Nevezze el úgy, hogy
GFUDemo_VBvagyGFUDemo_CS, attól függően, hogy melyik nyelvet használja.A Megoldáskezelőben kattintson a jobb gombbal a megoldás ikonra a tetején, és válassza azÚj projekthozzáadása> lehetőséget.
Hozzon létre egy új Unit Test Project (.NET-keretrendszer) projektet.
Hivatkozás hozzáadása az Osztálytár projekthez
A Megoldáskezelőben az egységteszt projekt alatt kattintson a jobb gombbal a Hivatkozások bejegyzésre , és válassza a Hivatkozás hozzáadása lehetőséget.
A Referenciakezelő párbeszédpanelen válassza a Projektek lehetőséget, majd válassza ki az osztálytárprojektet.
Az OK gombra kattintva zárja be a Referenciakezelő párbeszédpanelt.
Mentse a megoldást. Most már készen áll a tesztek írására.
Új osztály létrehozása egységtesztből
A tesztprojekt egy UnitTest1 nevű fájlt tartalmaz. Kattintson duplán erre a fájlra a Megoldáskezelőben a kódszerkesztőben való megnyitásához. Létrejött egy tesztosztály és egy tesztelési módszer.
Keresse meg az osztály
UnitTest1deklarációt, és nevezze át a következőreAutomobileTest: .Megjegyzés:
Az IntelliSense mostantól két alternatívát kínál az IntelliSense utasítás befejezéséhez: a befejezési módot és a javaslati módot. Javaslat mód használata olyan helyzetekhez, amikor az osztályok és a tagok használatban vannak a definiálásuk előtt. Ha meg van nyitva egy IntelliSense ablak, a Ctrl AltSpacebillentyűkombinációval++ válthat a befejezési mód és a javaslati mód között. További információt az IntelliSense használata című témakörben talál. A javaslati mód segít, ha a következő lépésben gépel
Automobile.Keresse meg a metódust
TestMethod1(), és nevezze át a következőreDefaultAutomobileIsInitializedCorrectly(): . Ebben a metódusban hozzon létre egy új, azAutomobilealábbi képernyőképeken látható osztálypéldányt. Megjelenik egy hullámos aláhúzás, amely fordítási idejű hibát jelez, és a bal margón megjelenik egy Gyorsművelet hibajelző, vagy közvetlenül a hullámos aláhúzás alatt, ha rámutat.
Válassza ki vagy kattintson a Gyorsműveletek villanykörtére. Megjelenik egy hibaüzenet, amely azt jelzi, hogy a típus
Automobilenincs definiálva. Néhány megoldást is bemutatunk.Kattintson az Új típus létrehozása gombra a Típus létrehozása párbeszédpanel megnyitásához. Ez a párbeszédpanel olyan beállításokat biztosít, amelyek magukban foglalják a típus egy másik projektben való generálásának lehetőségét.
A Projekt listában kattintson a GFUDemo_VB vagy a GFUDemo_CS elemre, és utasítsa a Visual Studiót, hogy a tesztprojekt helyett adja hozzá a fájlt az osztálytár projekthez. Ha még nincs kijelölve, válassza az Új fájl létrehozása lehetőséget, és nevezze el Automobile.cs vagy Automobile.vb.
Kattintson az OK gombra a párbeszédpanel bezárásához és az új fájl létrehozásához.
A Megoldáskezelőben a GFUDemo_VB vagy GFUDemo_CS projektcsomópont alatt ellenőrizze, hogy az új Automobile.vb vagy Automobile.cs fájl létezik-e. A kódszerkesztőben a fókusz még mindig benne
AutomobileTest.DefaultAutomobileIsInitializedCorrectlyvan, ami lehetővé teszi a teszt írását minimális megszakítással.
Tulajdonságcsomó létrehozása
Tegyük fel, hogy a termék specifikációja azt állítja, hogy az Automobile osztálynak két nyilvános tulajdonsága van elnevezve Model és TopSpeed. Ezeket a tulajdonságokat az alapértelmezett konstruktor alapértelmezett értékeivel "Not specified"-1 kell inicializálni. Az alábbi egységteszt ellenőrzi, hogy az alapértelmezett konstruktor a tulajdonságokat a megfelelő alapértelmezett értékekre állítja-e be.
Adja hozzá a következő kódsort a
DefaultAutomobileIsInitializedCorrectlytesztmetódushoz.Mivel a kód két nem definiált tulajdonságra hivatkozik, hullámos aláhúzás jelenik meg a
ModelésTopSpeedalatt. Vigye az egérmutatót aModelfölé, és kattintson a Gyorsműveletek hiba ikonra, ezután kattintson a 'Automobile.Model' tulajdonság létrehozása lehetőségre.Azonos módon hozzon létre tulajdonságcsomót a
TopSpeedtulajdonsághoz.Az
Automobileosztályban az új tulajdonságok típusait helyesen a környezetből következtetik ki.
Hozzon létre csonkot egy új konstruktor számára
Most létrehozunk egy tesztmetódust, amely egy konstruktor-csonkot hoz létre, hogy inicializálja a Model és a TopSpeed tulajdonságokat. Később további kódot fog hozzáadni a teszt elvégzéséhez.
Adja hozzá az alábbi további vizsgálati módszert az
AutomobileTestosztályhoz.Kattintson a gyorsműveletek hibalámpára a piros hullámos kapcsoló alatt, majd kattintson a Konstruktor létrehozása elemre az "Automobile" (Autó) területen.
AutomobileAz osztályfájlban figyelje meg, hogy az új konstruktor megvizsgálta a konstruktorhívásban használt helyi változók nevét, olyan tulajdonságokat talált, amelyek neve megegyezik azAutomobileosztályban, és a konstruktor törzsében megadott kódot az argumentumértékek ésTopSpeedtulajdonságokModeltárolásához.Az új konstruktor létrehozása után hullámos aláhúzás jelenik meg az alapértelmezett konstruktor meghívása alatt a következőben
DefaultAutomobileIsInitializedCorrectly: . A hibaüzenet azt jelzi, hogy azAutomobileosztálynak nincs olyan konstruktora, amely nulla argumentumot vesz igénybe. Ha olyan explicit alapértelmezett konstruktort szeretne létrehozni, amely nem rendelkezik paraméterekkel, kattintson a Gyorsműveletek hibalámpára, majd a Konstruktor létrehozása elemre az "Automobile" (Autó) területen.
Metódus keretének létrehozása
Tegyük fel, hogy a specifikáció szerint egy új AutomobileIsRunning állapotba helyezhető, ha a Model és TopSpeed tulajdonságai nem az alapértelmezett értékekre vannak beállítva.
Adja hozzá a következő sorokat a
AutomobileWithModelNameCanStartmetódushoz.Kattintson a Gyorsműveletek hibajelző villanykörtére a
myAuto.Startmetódushívásnál, majd az 'Automobile.Start' metódus létrehozása parancsra.Kattintson a tulajdonság Gyorsműveletek villanykörte elemére
IsRunning, majd az Automobile.IsRunning tulajdonság létrehozása parancsra.Az
Automobileosztály most egy elnevezettStart()metódust és egy nevű tulajdonságotIsRunningtartalmaz.
A tesztek futtatása
A Teszt menüben válassza azÖsszes tesztfuttatása lehetőséget>.
AMinden tesztfuttatása> parancs az aktuális megoldáshoz írt tesztkörnyezetekben futtatja az összes tesztet. Ebben az esetben két teszt van, és mindkettő a vártnak megfelelően meghiúsul. A
DefaultAutomobileIsInitializedCorrectlyteszt meghiúsul, mert aAssert.IsTruefeltétel visszatérFalse. AAutomobileWithModelNameCanStartteszt meghiúsul, mert azStartosztály metódusaAutomobilekivételt jelez.A Teszteredmények ablak az alábbi ábrán látható.
A Teszteredmények ablakban kattintson duplán az egyes teszteredmények sorára az egyes tesztek helyének eléréséhez.
A forráskód implementálása
Adja hozzá a következő kódot az alapértelmezett konstruktorhoz, hogy az ,
TopSpeedésIsRunningaModeltulajdonságok mind inicializálva legyenek a megfelelő alapértelmezett értékhez"Not specified",-1ésFalse(vagyfalseC# esetén).A
Startmetódus meghívásakor aIsRunningjelölőt csak akkor állítsa igaz értékre, ha aModelvagyTopSpeedtulajdonság értéke nem az alapértelmezett érték. Távolítsa el aNotImplementedExceptionmetódus törzsét, és adja hozzá a következő kódot.
Futtassa újra a teszteket
A Teszt menüben mutasson a Futtatás pontra, majd kattintson a Minden teszt parancsra.
Ezúttal a tesztek átmennek. A Teszteredmények ablak az alábbi ábrán látható.