Rusrails útmutatást tesztelés sínek alkalmazások
on Rails alkalmazások szervíz útmutató
Ez az útmutató Rails beépített mechanizmussal, hogy teszteljék az alkalmazás.
Miután elolvasta, tanulni fog:
- A Rails tesztelés terminológiát.
- Hogyan írjunk yunit-, funkcionális integráció és a rendszer tesztelése az alkalmazás.
- Mintegy más népszerű megközelítések tesztelése, és a plug-inek.
1. Miért levelet vizsgálatokat az alkalmazás on Rails?
Korlátok ajánlatok írásban tesztek nagyon egyszerű. Amikor létrehozza a modellek és vezérlők, akkor kezdődik, hogy megteremtse a csontváz a teszt kód.
Sínek teszt biztosítja, hogy a kód megfelel a kívánt funkciót után is egy csomó kód megváltoztatását.
Sínek vizsgálatok is szimulálni böngészőkérelmek, így ki lehet próbálni a válasz az alkalmazás szükségessége nélkül teszteli böngészőt használ.
2. Bevezetés a tesztelés
Tesztelés Rails támogatás be van építve a kezdetektől fogva. És ez nem olyan, mint „Ó Legyünk támogatása próbaüzem, ez új és cool!”
2.1. Sínek beállítási tesztelésre a semmiből
Sínek létrehoz egy teszt könyvtár amint létrehozni Rails projekt segítségével sínek új _application_name_. Ha megnézzük a listát a mappa tartalmát, akkor megjelenik:
Könyvtárak segítők. küldemények és modell tartalmazza a vizsgálat segítő Vyuha, küldők és modellek, ill. vezérlők könyvtár tartalmazza vizsgálatokat a vezérlők, útvonalak és Vyuha. integrációs könyvtár szánt tartalmaznak vizsgálatok közötti kölcsönhatás vezérlők.
Mérkőzések egy módja a szervező a vizsgálati adatok; azok a mérkőzések könyvtárban.
Szintén munkahelyek könyvtárban jön létre. amint az első a teszt fog generálni.
test_helper.rb fájl tartalmazza az alapértelmezett beállítás a teszteket.
application_system_test_case.rb tartalmazza az alapértelmezett beállításokat a rendszer teszteket.
2.2. Teszt Development Environment
Alapértelmezésben minden Rails alkalmazás három fejlesztési környezetek: fejlesztés, tesztelés és gyártás. Az adatbázis mindegyikük meg a config / database.yml.
Hasonlóképpen, az egyik lehet változtatni a konfigurációját a közeg. Ebben az esetben meg lehet változtatni a teszt környezetben, változó lehetőségek a config / környezetek / test.rb.
A teszteket futtatni RAILS_ENV = test.
2.3. Sínek találkozott Minitest
Ha emlékszel, mi használjuk a parancsot sínek generál modell Rails kalauz kezdőknek. Azért hoztuk létre az első modell, ahol többek között, hozzon létre egy függőben lévő vizsgálatok a vizsgálati mappában:
Befejezetlen alapértelmezett teszt teszt / modellek / article_test.rb így néz ki:
Progresszív tanulmány a fájl segít eligazodni a kódot, és Rails tesztelés terminológiát.
Igényes a fájl be van töltve, az alapértelmezett konfiguráció test_helper.rb futtatni a teszteket. Mi ezt a sort valamennyi írásbeli teszteket, így az összes módszer, amit hozzá ehhez a fájlhoz elérhető lesz minden tesztben.
ArticleTest osztály definiál egy teszt. mivel származik ActiveSupport :: TestCase. Ezért ArticleTest az összes rendelkezésre álló módszerek a ActiveSupport :: TestCase. Később ebben az útmutatóban látni fogjuk néhány technikát, hogy ő ad nekünk.
Bármely meghatározott módszer egy osztályt, amely származik Minitest :: Test (amely a superclass számára ActiveSupport :: TestCase) kiindulva test_ (nagybetűk), egyszerűen az, hogy a vizsgálatot. Így, módszerek és azonosított test_password test_valid_password. ez a helyes neveket a vizsgálatok, és automatikusan futtatni a kezdete a teszt.
Rails is hozzáteszi vizsgálati módszer. amely nevet veszi fel a vizsgálat, és a blokk. Ez létrehoz egy normál vizsgálati MiniTest :: egység módszer névvel kezdődő test_. így nem kell aggódnia elnevezési módszereket, és csak írom ezt:
Ez nagyjából ugyanaz, mint ha azt írják:
Bár továbbra is használhatja a szokásos módszerekkel meghatározására használja a makró teszt egy olvashatóbb nevét a vizsgálat.
A módszer neve generálja helyett a terek aláhúzás. Bár az eredmény nem lehet érvényes azonosító Ruby, a neve tartalmazhat írásjeleket, stb Ez annak a ténynek köszönhető, hogy a Ruby technikailag bármilyen string lehet a neve a módszer. Ez megkövetelheti, hogy felhívja, és küldje define_method megfelelően működött, de hivatalosan csak kismértékben korlátozza a nevét.
Következő, nézd meg az első nyilatkozata:
Az állítás (állítás) - egy sor kódot, amely kiszámítja a tárgyat (vagy kifejezés) a várt eredmények. Például a kijelentés is nézd meg:
- Ha ez az érték van beállítva, hogy az érték?
- ha ez az objektum nulla.
- Vajon ezt a kódsort kivétel?
- hogy a felhasználó jelszavát több mint 5 karakter?
Minden teszt tartalmaznia kell egy vagy több kifejezést, korlátozások nélkül a maximális számát. Csak akkor, ha minden utasítás sikeres, a teszt sikeres.
2.3.1. Az első eső teszt
Látni, hogy a bejelentett hiba a vizsgálat, felveheti átszakadt a tesztet a teszt article_test.rb.
Fussunk az újonnan hozzáadott vizsgálat (ahol a 6 - a vonal számát, ahol a vizsgálat meghatározott).
Ennek eredményeként, F jelöli kudarc. Láthatjuk a megfelelő görbe elmulasztása, valamint a nevét a sikertelen teszt. A következő néhány sor tartalmazhat nyomokban verem üzenet követ, ahol a tényleges érték és a várható érték a nyilatkozatban. Az alapértelmezett üzenet jóváhagyásra elegendő információt, hogy segítsen azonosítani a hibát. Ahhoz, hogy az üzenetet a hiba, hogy hagyja jóvá olvashatóbb, minden állítás rendelkezik egy opcionális paraméter az üzenet, mint itt látható:
Futó ez a vizsgálat megmutatja a baráti üzenet jóváhagyásra:
Most, hogy a teszt letelt, akkor adjunk hozzá egy érvényesítési a modell szinten a mező neve.
Most a teszt kerül sor. Tegyünk, majd indítsa újra:
Most, ha azt észleli, először írt a sikertelen teszt a kívánt funkciót, majd írtunk egy kódot, amely hozzáteszi, a funkcionalitás, és végül azt találtuk, hogy a vizsgálaton. Ez a megközelítés a szoftverfejlesztés úgynevezett Test Driven Development, Test-fejlesztés (TDD).
2.3.2. Úgy néz ki, mint egy bogár
Megtekintheti, hogy egy hibaüzenet jelenik meg, hogy a vizsgált hibát tartalmaz:
Most akkor egy kicsit több, mint az eredmény a konzolon futó vizsgálatok:
Mark „E” eredményeként. Azt mondja, a teszt sikertelenségét.
Fuss az egyes vizsgálati módszer leáll, amint vannak hibák vagy állítás hiba és egy teszt készlet folytatódik a következő módszerrel. Minden vizsgálati módszerek futnak véletlenszerű sorrendben. Állítsa be a vizsgálati sorrendjének lehet használni config.active_support.test_order opciót.
Ha a teszt nem sikerül, akkor meg fogja mutatni a megfelelő hívási láncot. Alapértelmezésben Rails szűri a backtrace és kiírja csak azokat a sorokat kapcsolódna az alkalmazása. Ez kiküszöböli a zaj a keretet, és segít összpontosítani a kódot. Vannak azonban olyan esetek, amikor lesz akar látni a teljes hívási láncot. Állítsa be az érv -b (vagy --backtrace), hogy ezt a viselkedést:
Ha azt szeretnénk, hogy ez a teszt telt el, meg lehet változtatni a assert_raises alábbiak szerint:
Nos, ez a teszt kell eltelnie.
2.4. álló jóváhagyás
Mostanra már néhány már meglévő nyilatkozatok. Jóváhagyása - igáslovai a tesztelés. Ők az egyetlenek, akik ténylegesen ellenőrzéseket végez, hogy minden rendben működik-e.
Az alábbiakban egy részlet nyilatkozatok, amelyek segítségével a Minitest. teszteli a könyvtár, az alapértelmezett Rails. Paraméter [msg] - egy opcionális karakterlánc üzenet megadhatja annak érdekében, hogy az üzenet világos hiba.