RSpec - RSpec
tento článek může být pro většinu čtenářů příliš technická na to, aby je pochopili. Prosím pomozte to vylepšit na aby to bylo srozumitelné pro neodborníky, aniž by byly odstraněny technické podrobnosti. (Února 2017) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) |
Vývojáři | David Chelimsky, Myron Marston, Andy Lindeman, Jon Rowe, Paul Casaretto, Sam Phippen, Bradley Schaefer[1] |
---|---|
První vydání | 18. května 2007[2] |
Stabilní uvolnění | 3.8.0 / 4. srpna 2018[3] |
Úložiště | |
Operační systém | Cross-platform |
Typ | Vývoj založený na chování rámec / Zkušební nástroj |
Licence | Licence MIT |
webová stránka | rspec |
RSpec je počítač jazyk specifický pro doménu (DSL) (konkrétní doména aplikace) testovací nástroj napsáno v programovací jazyk Rubín otestovat Ruby kód.[4] Je to vývoj založený na chování (BDD) rámec který se značně používá ve výrobních aplikacích. Základní myšlenkou tohoto konceptu je myšlenka testovaný vývoj (TDD), kde jsou testy psány jako první a vývoj je založen na psaní právě dostatečného množství kódu, který splní tyto testy, za nimiž následuje refaktorování. Obsahuje vlastní zesměšňovací rámec který je plně integrován do rámce založeného na JMock.[5] Díky jednoduchosti syntaxe RSpec je jedním z populárních testovacích nástrojů pro aplikace Ruby. Nástroj RSpec lze použít instalací rspec
klenot který se skládá ze tří dalších drahokamů, jmenovitě rspec-jádro
, rspec-očekávání
a rspec-mock.
[4]
Dějiny
RSpec byl zahájen jako experiment Stevenem Bakerem v roce 2005 spolu se členy jeho týmu Daveem Astelsem, Aslakem Hellesøym a Davidem Chelimským. Chelimsky byl zodpovědný za vývoj RSpec-Rails, což usnadnilo integraci s Ruby on Rails. Počáteční vydání, tj. RSpec 1.0, vyšlo v květnu 2007 a obsahovalo mnoho hlavních funkcí RSpec, které jsou součástí i nejnovějších verzí. Nicméně, kvůli některým technickým problémům, jako je rychlost testování, to bylo přerušeno později. Třetí verze RSpec, tj RSpec 3 byla vydána v červenci 2014 a měla mnoho nových funkcí, jako je ověřit zdvojnásobení, skládací zápalky a mnoho dalších. Nejnovější verze RSpec aktuálně k dispozici je RSpec 3.7.
Používání
Popis chování objektů
Jak již bylo zmíněno výše, RSpec poskytuje jazyk specifický pro doménu, který popisuje chování předměty. The klíčová slova používané v RSpec jsou podobné těm, které se používají v jiných jazycích a / nebo TDD frameworkech.[6] Například pokud se berou v úvahu klíčová slova použitá v Test :: Unit, lze je mapovat na klíčová slova RSpec následujícím způsobem:
- Tvrzení se stává očekávání
- Testovací metoda se stává Příklad kódu
- Testovací případ se stává Příklad skupiny
Existuje mnoho takových klíčových slov, která se používají ve stejném kontextu, ale s podobnými názvy. Syntaxe RSpec poskytuje snadnou čitelnost a popisuje chování kódu, čímž poskytuje programátorovi svobodu. Každý testovací rámec funguje v následujícím toku - vzhledem k určitému kontextu, kdy dojde k nějaké události, jaký výsledek se očekává. Metody jako description (), context () a it () tvoří analogii a kostru testovacího kódu.
popsat()
Metoda description () se používá k popisu třídy, metody nebo příkladové skupiny. Toto je vnější blok, který ve skutečnosti obsahuje testovací kód a zobrazuje vlastnosti kódu v něm obsaženého. Tato metoda přebírá řadu argumentů a volitelný blok.[6] Obvykle se však k popisu chování skupiny příkladů používá jeden nebo dva argumenty. První argument představuje odkaz na třídu nebo modul, zatímco druhý argument je volitelný, jehož datový typ by byl Tětiva.[6] Skupiny příkladů lze také vnořit. Příklad použití metody description je následující:[6]
popsat Uživatel, „bez zůstatku na účtu“ {....}=> Uživatel s Ne účet Zůstatek
kontext()
Blok context () se používá k popisu kontextu, ve kterém se používá třída nebo metoda uvedená v bloku description. To lze v tomto scénáři považovat za alias slova description () a oba lze použít zaměnitelně. Obecně se description () používá pro věci a kontext () se používá pro kontexty. Pomáhá odhalit různé výsledky v různých scénářích. Výše uvedený příklad lze popsat pomocí metody context () takto:[6]
popsat Uživatel dělat kontext „nemá zůstatek na účtu“ dělat .... koneckonec
[6] Použití context () usnadňuje skenování souboru spec a objasňuje, na co se vztahuje.
to()
Jedná se o metodu RSpec, která popisuje specifikace vzorku v kontextu. Blok it () bere jako argument řetězec a řetězec za klíčovým slovem „it“ lze považovat za funkci, kterou má blok vykonávat, nebo jinými slovy lze jej považovat za testovací případ. Zvažte následující příklad:[6]
popsat Uživatel dělat kontext „nemá zůstatek na účtu“ dělat to „není povoleno sankcionovat půjčku na bydlení“ dělat uvádí „Půjčku nelze sankcionovat, protože na účtu není zůstatek.“ konec koneckonec
RSpec :: Očekávání
V RSpec, an očekávání je prohlášení vyjadřující stav, ve kterém se něco očekává, v určitém bodě provádění příkladu kódu. RSpec používá jednoduchý rámec a klíčová slova jako by měl() a neměl by() vyjádřit očekávání. Podporuje porovnávače, tj. Objekty, které se pokoušejí porovnat očekávaný výsledek, pro běžné operace i neobvyklé výrazy. Například pokud je očekávaným výsledkem výsledku řekněme číselná hodnota 5, očekávání RSpec, které používá porovnávač rovnat se totéž by bylo napsáno takto:[6]
výsledek. měl by se rovnat (5)
RSpec :: Mocks
RSpec poskytuje knihovnu s názvem RSpec :: Mocks, aby bylo možné vytvořit test zdvojnásobí které usnadňují zaměření na role, zjišťování rozhraní, ale hlavně dělat pokroky bez implementace závislosti čímž poskytuje izolaci od spojka a nedeterminismus.[6]
Nástroje a integrace
Existuje mnoho nástrojů, které podporují RSpec, například:
RSpec také poskytuje řadu nástrojů a bodů rozšíření pro podporu rozšíření RSpec tak, aby vyhovovaly specifickým potřebám domény. Například pomocí Metadata spojené se skupinami a příklady pro účely hlášení, použití globální konfigurace přiřadit bloky před a po každé skupině příkladů pomocí makra atd.
Další nástroje pro testování Ruby
Reference
- ^ Základní tým RSpec. Vyvolány 8 April 2013.
- ^ "všechny verze rspec". rubygems.org. Citováno 11. února 2014.
- ^ "Vydání - rspec / rspec". Citováno 31. srpna 2018 - přes GitHub.
- ^ A b "Úvod do RSpec | Odinův projekt". www.theodinproject.com. Citováno 2017-02-18.
- ^ „jMock - Expresivní Mock Object Library pro Javu“. www.jmock.org. Citováno 2017-02-18.
- ^ A b C d E F G h i j k „Kniha RSpec: Vývoj založený na chování s RSpec, okurkou a přáteli, David Chelimsky, Dave Astels, Zach Dennis, Aslak Hellesøy, Bryan Helmkamp, Dan North | The Pragmatic Bookshelf“. pragprog.com. Citováno 2017-02-11.
Další čtení
1. Začínáme s RSpec: (kroky instalace) http://rspec.info/
2. Beck, K. (2014). Příkladem je vývoj řízený testováním. Boston: Addison-Wesley.
externí odkazy
- Oficiální webové stránky
- RSpec-2
- Beyond Test Driven Development - Behavior Driven Development. Google TechTalk od Davea Astelsa na BDD pomocí RSpec.
- Osvědčené postupy RSpec Článek Jared Carrolla, získaný 24. dubna 2011.
- Testování na základě chování s RSpec Článek Bruce Tate, získaný 21. července 2011.