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.

A csonkok használata az alkalmazások egyes részeinek egymástól való elkülönítésére egységvizsgálattal

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.