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.