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.
A tesztelés szinte minden alkalmazástípus számára fontos szempont – lehetővé teszi, hogy az alkalmazás megfelelően működjön, és azonnal ismerté teszi, hogy a viselkedése a jövőben visszaesik-e. Mivel a tesztelés hatással lehet a kód kialakítására, erősen ajánlott előre megtervezni a tesztelést, és biztosítani a megfelelő lefedettséget az alkalmazás fejlődésével. Ez a bevezető szakasz gyors áttekintést nyújt az EF Core-t használó alkalmazások különböző tesztelési stratégiáiról.
Az adatbázis bevonása (vagy nem)
Az EF Core-alkalmazás tesztjeinek írásakor alapvető döntést kell hoznia, hogy a tesztek az éles adatbázisrendszert is magukban foglalják - az alkalmazáshoz hasonlóan -, vagy a tesztek egy dupla teszten futnak majd, amely felváltja az éles adatbázisrendszert. Az EF Core-környezetben a tesztkettő két kiemelkedő példája a memóriabeli SQLite mód és a memóriabeli szolgáltató.
A különböző megközelítések részletes összehasonlítását és elemzését lásd: Tesztelési stratégia kiválasztása. Az alábbiakban egy rövid, pontonkénti összefoglalást talál, amely segítséget nyújt a különböző lehetőségek gyors eléréséhez:
- A fejlesztők gyakran kerülik az éles környezet adatbázisának tesztelését, mert úgy vélik, hogy ez nehézkes vagy lassú. Több tapasztalatunk szerint ez nem mindig igaz, és javasoljuk, hogy adjon esélyt ennek a megközelítésnek: Az éles adatbázisrendszerrel szembeni tesztelés olyan technikákat biztosít, amelyek megbízható és hatékony végrehajtást tesznek lehetővé. Minden esetben szükség van legalább néhány teszt írására az adatbázison – annak érdekében, hogy az alkalmazás valóban működjön az éles adatbázissal szemben –, és az adatbázist nem érintő tesztek korlátozottak lehetnek abban, hogy mit tesznek lehetővé a teszteléshez (lásd alább).
- A memóriabeli szolgáltató számos fontos módon nem fog úgy viselkedni, mint a valódi adatbázis. Egyes funkciók egyáltalán nem tesztelhetők vele (például tranzakciók, nyers SQL.), míg más funkciók másként viselkedhetnek, mint az éles adatbázis (például a lekérdezések kis- és nagybetűkre vonatkozó érzékenysége). Jóllehet az in-memory technológia működhet egyszerű, korlátozott lekérdezési forgatókönyveknél, erősen korlátozott, ezért nem javasoljuk a használatát.
- A lekérdezések szimulálása
DbSetösszetett és nehéz, és ugyanolyan hátrányokkal jár, mint a memórián belüli megközelítés; ezt is elriasztjuk.
- A lekérdezések szimulálása
- A memóriabeli SQLite jobb kompatibilitást biztosít az éles relációs adatbázisokkal, mivel az SQLite maga egy teljes körű relációs adatbázis. Az SQLite és az éles adatbázis között azonban továbbra is lesz néhány fontos eltérés, és bizonyos funkciók egyáltalán nem tesztelhetők (például az EF.Functions szolgáltatóspecifikus módszerei).
- Ezért, egy olyan tesztelési megközelítéshez, amely lehetővé teszi, hogy a termelési környezetű adatbázis rendszer minden funkciójához megbízható tesztbábot használjon, egy tárhely réteget is bevezethet az alkalmazásban. Ez lehetővé teszi az EF Core teljes kizárását a tesztelésből, és az adattár teljes szimulálásához; Ez azonban jelentős mértékben módosítja az alkalmazás architektúráját, és több megvalósítási és karbantartási költséget igényel.
További olvasnivalók
További részletes információkért lásd: Tesztelési stratégia kiválasztása. A megvalósítási irányelvekről és a kódmintákról az éles adatbázisrendszer tesztelése és az éles adatbázisrendszer nélküli tesztelés című témakörben olvashat.