Integrációs tesztelés - dokumentációt 1 magot
Integrációs tesztelés biztosítja az alkalmazások alkatrészek működnek megfelelően összeillesztett állapotban. ASP.NET 5 támogatja integrációs tesztelés segítségével tesztelési keretrendszer és a beépített teszt internetes fogadó, amelyet fel lehet használni anélkül, hogy a hálózat terhelése kezelni a kéréseket.
Bevezetés az integráció testirovanie¶
Integrációs tesztek ellenőrzik, hogy a különböző részein a kérelem megfelelően működnek együtt. Ellentétben `` moduláris testirovaniya`_ integrációs tesztek gyakran kérnek alkatrészek az alkalmazás infrastruktúrát, például egy adatbázis, fájlrendszer, web kérések és válaszok, és így tovább. Helyett ezek a komponensek egység vizsgálatok Az ál-tárgyakat, és integrációs tesztek ellenőriznie kell, hogy ezek a komponensek jól működik a rendszer.
Mivel az integrációs tesztek dolgozik nagyméretű kód szegmens, és mert szükség van az infrastruktúra elemek, ezek lassabban egység vizsgálatok. Ezért ne használjunk túl sok integrációs tesztek, különösen, ha akkor nézd meg néhány funkcionalitását keresztül egység teszt.
Ha ugyanazt a viselkedést lehet tesztelni a készüléket teszt és integrációs teszt, válasszon ki egy egység teszt, hiszen szinte mindig gyorsabb. Lehet, hogy több száz egység vizsgálatok, de csak néhány az integrációs tesztek, amely a legfontosabb forgatókönyveket.
Tesztelés belüli logikája módszerek általában egy feladat egység vizsgálatok. És integrációs tesztek jöhet számításba, ha szükség van, hogy ellenőrizze, hogy a alkalmazás a keretben (például ASP.NET Core), vagy egy adatbázisban. Nem kell túl sok elemet integrációs tesztet végeznek, hogy felvehet egy rekord vagy távolítsa el az adatbázist. Nem kell tesztelni minden lehetséges változás a kódot az adatokhoz való hozzáféréshez - csak meg kell győződnie arról, hogy a kérelmet megfelelően működik.
Integrációs tesztelés ASP.NET Core¶
Konfigurálásához az integrációs tesztek, akkor létre kell hozni egy teszt projektet, amely társítva van az ASP.NET web Core projekt és állítsa be a próbaüzem mechanizmus. Ezt a folyamatot a dokumentációban leírt Unit tesztelés. együtt részletesebb utasításokat, hogyan kell futtatni a teszteket és ajánlásokat elnevezésére vizsgálatok és vizsgálati osztályok.
Unit tesztek és integrációs tesztek kell tárolni a különböző projektekben. Akkor nem véletlenül kapcsolja be az elemeket az infrastruktúra a unit tesztek, és akkor lehet futtatni az összes tesztet, illetve, illetve valamely meghatározott vizsgálatokat.
teszt host¶
ASP.NET mag egy teszt host, amelyet ki lehet egészíteni a projektek és integrációs tesztek használt fogadó ASP.NET Core kérelem feldolgozása vizsgálati kérelmek szükségessége nélkül igazi web hosting. Ebben a példában már benne az integrációs teszt projekt, amely a `xUnit`_ és tesztelje a gazda, mint látható az alábbi:
Miután Microsoft.AspNet.TestHost csomag tartalmazni fogja a projekt, akkor hozza létre és konfigurálja testserver. A következő teszt azt mutatja, hogyan kell ellenőrizni a kérelmet küldött a gyökér könyvtárat a helyszínen, vissza „Hello World!”, És a teszt sikeres legyen az alapértelmezett ASP.NET Core üres sablon.
Ezek a tesztek a felhasználási módokra gondoskodjon-törvény érvényesíteni, de ebben az esetben kerül sor lépésben gondoskodjon kivitelező, amely létrehozza testserver fokon. WebHostBuilder itt fogják használni, hogy hozzon létre TestHost; ebben az esetben átadjuk a Beállítás módszer az osztály SUT Startup. Ezt a módszert alkalmazzák, hogy a lekérdezés patak konfiguráció testserver azonos módon, akkor a szerver beállítása SUT.
Ennek része a vizsgálat a törvény testserver kérelem másolatának egy út „/”, és a válasz olvasható egy húr. Ez a sztring azután összehasonlítjuk a várt string „! Hello World”. Ha ezek megegyeznek, a teszt sikeres, egyébként - nem.
Mi adhat néhány további integrációs tesztek annak igazolására, hogy a kezdeti vizsgálati alkalmassága fut egy webes alkalmazás:
Felhívjuk figyelmét, hogy ne próbálja meg, hogy teszteljék a helyességét elsődleges ellenőrzési mechanizmust, már csak be kell látni, hogy a webes alkalmazás nem az, amit várunk. Már van egység teszteket futtatni PrimeService. mint látható:
A unit tesztek akkor többet megtudni a cikk Unit tesztelés.
Most itt az ideje, hogy gondolkodni e vagy sem szeretjük a megjelenés alkalmazás. Ha látunk egy büdös kódot. akkor refactor alkalmazások javítani.
Refactoring kezelhető kötőanyagot PO¶
Újratervezés - a folyamat változó az alkalmazás kódját, hogy javítsa a megjelenés megváltoztatása nélkül a viselkedését. Az újraírás ideális annyit kell tennie, ha van egy sor teszt telt el, mert akkor tudni fogja, hogy a viselkedés ugyanaz lesz előtt és után a változásokat. Ha megnézzük, ahogy a realizált elsődleges ellenőrzési logikát mi alkalmazás, látjuk a következő:
Ez a kód működik, de ez messze hogyan szeretnénk megvalósítani ezt a funkciót az ASP.NET Core alkalmazás, még egy ilyen egyszerű, mint a miénk. Képzeld el, milyen lenne, mint a módszer beállítása. ha kell írok többet kódot akkor minden alkalommal, amikor egy újabb végpont az URL!
Azt is hozzá őket MVC alkalmazás, és hozzon létre egy vezérlőt kezelni a kezdeti ellenőrzés. De ez egy kicsit túl sokat, mert abban a pillanatban nem kell másik MVC funkciót.
Ezen felül, tudjuk használni az ASP.NET middleware (Middleware). és akkor magukba a logika a kezdeti vizsgálati külön osztályt, és jobban megoszlanak a felelősségek konfigurálása módszer.
Azt szeretnénk, hogy az utat a middleware lett megadva a paraméter, úgy, hogy az osztály várakozik a kivitelező és RequestDelegate PrimeCheckerOptions. Ha a kérés útvonal nem felel meg az egyik, hogy elvárja, hogy middleware, egyszerűen hívja a következő middleware a láncban. A fennmaradó kódot volt konfigurálása. Ez most a Invoke.
Mivel a middleware függ PrimeService szolgáltatást. Azt is kérni egy példányt a kivitelező a szolgáltatás. A keret a szolgáltatást Függőség injekció (Függőség Injection). és azt feltételezzük, hogy van beállítva (például ConfigureServices).
Mivel middleware működik, mint egy végpont a lánc kérésére küldöttek, ha az elérési út megegyezik, akkor _next.Invoke nem lehet hivatkozni abban az esetben, ha a middleware kezeli a kérést.
Amikor a middleware a helyére, és akár néhány hasznos kiterjesztése módszerek, hogy megkönnyítse konfiguráció után újraszervezi konfigurálása módszer a következőképpen néz ki:
Miután újraírás, azt is tudjuk, hogy az alkalmazás működik, mint korábban, hiszen az integrációs tesztek sikeresek voltak.
Amint jól követ változásokat, miután kiégett újraírás, és minden teszt sikeres volt. Ha gyakorló Test Driven Development, amelyben vállalta, hogy adjunk vörös-zöld-Refactor ciklust.
Integrációs tesztelés biztosítja a magasabb szintű ellenőrzés, hanem az egység tesztelése. Amikor integrációs tesztelés ellenőrizzük az infrastruktúra és az, hogy a különböző részein a kérelmek együtt dolgozni. ASP.NET Core kínál testserver. ami nagyban megkönnyíti az indítási integrációs tesztek.