ݺߣ

ݺߣShare a Scribd company logo
CucumberTestovanie webových aplikáciíPeter Študent / peter.student@smartmedia.sk@peterstudent
Ako testujete?
Test Driven Development (TDD)
Unit TestOverovanie vstupov a výstupov pre funkciuclassTestSimpleNumber<Test::Unit::TestCasedeftest_simpleassert_equal(4, SimpleNumber.new(2).add(2))assert_equal(6, SimpleNumber.new(2).multiply(3))endend
ŠpecifikáciaVäčšinou vo forme UserStoriesPríklad:Ako editor chcem mať možnosť pridávať a editovať stránky.
Cucumber
Outside-in$$$
Akona to? (BDD)Popísať požiadavku na funkcionalitu (feature)Definovať kroky, ktoré napĺňajú danú požiadavku(scenario)Implementovať jednotlivé kroky pomocou nizkoúrovňových testov(steps)Implementovať kód, aby sme prešli testamiOpakovať, kým nie sú všetky požiadavky splnené
FeatureFeature:  [title]In order to[business value]As a [role]I want to[some action]Scenario:…
Feature – príkladFeature:  Manage articlesIn order toprovide fresh content for visitorsAs an editor of the web pageI want tocreate and edit articles
ScenarioGivenWhenThen
Scenario – štruktúraScenario:[title]Given [Context]And [More Context]When I do [Action]And [Other Action]Then I should see [Outcome]But I should not see […]
Scenario –príkladScenario: Publishingnew articleGivenI log in as „admin“ using password „dog123“When I follow „New Article“AndI fill in „Title“ with „First Article“And I fill in „Article“ with „My first article about Cucumbers“And I press „Publish article“Then I should see „First Article was published“And I go to „the main page“And I should see „My first article about Cucumbers“
StepsZákladané vstavané kroky prejsť na stránku,vyplniť pole formulára, kliknúť, ...Vlastné krokyKombinácia krokov
Steps – príkladWhen/^I login as "([^"]*)" usingpassword "([^"]*)"/ do|username, password|When'I go to thehomepage'fill_in('Username', :with => username)fill_in('Password', :with => password)click_button('Log in')end
Bonus: SlovenčinaPožiadavka:SčítavanieAby somsa vyhol hlúpym chybámAko matematický idiotChcemvedieťakosasčítavajúdve číslaNáčrt Scenáru:SčítaniedvochčíselPokiaľZadám číslo <vstup_1> do kalkulačkyA Zadám číslo <vstup_2> do kalkulačkyKeďStlačím tlačidlo <tlačidlo>Tak Výsledok by mal byť <výstup>Príklady:   | vstup_1 | vstup_2 | tlačidlo | výstup |   | 20            | 30             | add       | 50          |   | 2              | 5                | add       | 7             |   | 0              | 40             | add       | 40          |
Webrat
WebratSimulátor prehliadačaVykonáva jednotlivé krokyPoskytuje sadu základných krokovNemožnosť testovať AJAX...… ale exitujúalternatívy:Selenium, Watir, Celerity, Culerity, env-js, ...
Cucumber - inštalácia$ gem install cucumber
ŠٰܰúáDZڱ𲹳ٳܰٱھԾپDzԲܱǰٱԱ.貹ٳ.貹.ڱ𲹳ٳܰ…
Spúštanie testov$ rakefeaturescucumber features/page.feature:7
ýٳܱ
ýٳܱ
Rôzne platformy
Aj Python...freshen (github.com/rlisagor/freshen)priamo Cucumber cezrubypython
Nenechajte sa oslepiť
VýhodyŽivá dokumentáciaZjednotený jazykLepšie pochopenie požiadaviekRýchly feedbackStanovenie akceptačných kritériiZáchranná sieťEfektívnejší vývojUhorky obsahujú vitamín C 
Pohľad do kuchyne
Pohľad do kuchyneCucumber + RSpecWebratKontinuálna integrácia cez Integrity (git hooks)Sledovanie metrík cez metric_fu
Kam ďalej?Prísť na ďalšiu Rubyslavucukes.info

More Related Content

Cucumber - Testovanie webových aplikácií