A csonkok használata az alkalmazások egyes részeinek egymástól való elkülönítésére egységvizsgálattal
A csonkfajták egyike azon két technológia közül, amelyeket a Microsoft Fakes platform a tesztelt összetevők könnyebb elszigetelésére képes az egyéb nevezett komponensektől. A csonk egy kis kód, amely a tesztelés során egy másik komponenst cserél. A csonk használatának előnye, hogy következetes eredményeket ad, egyszerűsítve a vizsgálat írását. A tesztek akkor is elvégezhetők, ha más komponensek még nem működnek.
A gyors áttekintés és a hamisítványok gyors elindításával kapcsolatos tudnivalókért olvassa el a Tesztkód elkülönítése Microsoft Fakes segítségével.
Az ábra a tesztelni kívánt StockAnalyzer komponenst mutatja. Általában egy másik összetevőt használ - a RealStockFeed. De a RealStockFeed mindig különböző eredményeket ad minden egyes módszernek, ami megnehezíti a StockAnalyzer tesztelését. A tesztelés során ezt az összetevőt egy másik osztályba helyezzük - a StubStockFeed-et.
Mivel feltételezzük, hogy a csonkok ilyen módon strukturálhatják a kódot, általában arra használják őket, hogy elkülönítsék az alkalmazás egy részét a másiktól. A más rendszerektől elkülönítve, amelyeket nem tudsz vezérelni, mint például a System.dll, általában a shelleket használod. Lásd A kompatibilitási tartók használata annak érdekében, hogy elkülönítse az alkalmazást más egységektől egységvizsgálathoz.
- Visual Studio Enterprise
Rugalmasabb módja van ennek a kapcsolatnak a végrehajtására. Például a StockAnalyzer elfogadhat egy gyári objektumot, amely különbözõ körülmények között létrehozhat példákat az IStockFeed különféle megvalósításaira.
Csonkok létrehozása
Elkülönítette az osztályt, amelyet meg kell vizsgálnia a többi komponensből. Ez a szétválasztás nemcsak azt teszi lehetővé, hogy az alkalmazás megbízhatóbbá és rugalmasabbá váljon, hanem a tesztelt összetevőhöz is csatlakoztassa a teszteléshez szükséges interfészek csonkjának megvalósításához.
Elég, ha az oszlopokat szokásos módon osztályokként írhatod. Azonban a Microsoft Fakes dinamikusabb módszert kínál a legmegfelelőbb csonk létrehozására minden egyes teszthez.
Az oszlopok használatához először létre kell hoznia a csonkfajtákat az interfészdefiníciókból.
Szimulációs egység hozzáadása
A Megoldás-böngészőben bontsa ki az egység-tesztprojekt Link-listáját.
Válasszon olyan szerelvényt, amely tartalmazza az interfész definíciókat, amelyekhez oszlopokat kíván létrehozni.
A helyi menüben kattintson a Add Simulation Assembly lehetőségre.
Test létrehozása csonkokkal
A kiáramlások a tulajdonságok, az események és az univerzális módszerek megszerzésére és meghatározására szolgáló eljárásokra is létrejöttek.
Paraméterértékek ellenőrzése
Ellenőrizheti, hogy az összetevő átadja-e a megfelelő értékeket, amikor másik összetevőre hív. Az állítást egy oszlopba teheti, vagy elmenti az értéket, és tesztelheti azt a vizsgálat fő részében. Például:
Amint azt a példában leírtuk, a módszereket csonkokkal helyettesíthetjük úgy, hogy egy felhatalmazót adunk hozzá a stub class egy példányához. A csonk típus neve a módszer és a paraméter nevekből származik. Például a következő IMyInterface felület és a MyMethod módszer adhatók meg.
A csonkot a MyMethod módszerhez rögzítjük. amely mindig 1 értéket ad vissza.
Ha nem ad meg egy függvényt a függvénynek, akkor a Fakes olyan függvényt hoz létre, amely visszaadja a visszatérési típus alapértelmezett értékét. A számok esetében az alapértelmezett érték 0, az osztálytípusok, null (C #) vagy semmi (Visual Basic) esetén.
A tulajdonságok megszerzésének és beállításának módszerei különálló küldöttként jelennek meg, és külön beszúrhatók az oszlopokkal. Például, vegye figyelembe az IMyInterface felület Érték tulajdonságát.
Ha nem adtál csonkolási módszereket a tulajdonság megszerzéséhez vagy beállításához, akkor a Fakes olyan csonkot hoz létre, amely tárolja az értékeket, hogy a csonk tulajdonsága egyszerű változó legyen.
Az eseményeket delegált mezőkként képviselik. Ennek eredményeként minden olyan eseményt, amelyet csonkokkal helyettesítünk, a mentési esemény mező meghívásával hívható meg. Vegye figyelembe a következő felületet, amelyet ki kell cserélni.