9. Vem 辰r det till f旦r?Svar: Alla p奪verkade av n奪gon typ av leverans!
10. Vilka verktyg finns d奪?Ok, om jag nu ska ta hand om n奪got m奪 det f#@n va smidigt!
11. Tillg辰ngliga verktygCucumberH辰rstammar ifr奪n Beteende Driven DesignGiven/When/Then syntaxKriterier definieras i klarspr奪kFITUppfunnet av wiki-mannenWardCumminghamTabellformatKriterier definieras i form av tabellerTwistThoughtworks nya tool, mestadels f旦r web-ui testningEngelska-liknande konstruktionerKriterier definieras med hj辰lp av f旦rdefinierade ordHemmabyggenUppfinns och skapas f旦r det behovet man harOfta i n奪got dom辰nspecifikt spr奪k
13. Spr奪ket Cucumber f旦rst奪r heter GherkinCucumber f旦rst奪r i skrivande stund 37 olika spr奪kEtt test kan se ut s奪h辰r:Feature: Search courses In order to ensure better utilization of courses Potential students should be able to search for courses Scenario: Search by topic Given there are 240 courses which do not have the topic "biology" And there are 2 courses A001, B205 that each have "biology" as one of the topicsWhen I search for "biology" Then I should see the following courses: | Course code | | A001 | | B205 |
14. Ett dag i en egenskaps livscykelDet var en g奪ng f旦r l辰nge sedan
16. Egenskapen kommer med i planeringen och en utvecklare laddar ner den ifr奪n pivotaltracker med hj辰lp av tpopespickler.Ett tool f旦r att managera saker i pivotaltracker.
21. En liten summeringPickler- Ett tool f旦r att managerastories i PivotalTrackerStories skrivna med som features, med Given/When/ThenPickler Anv辰nds f旦r att leverera en feature som blivit godk辰nd till pivotaltracker!Tolkar stories skriva i Gherkin och exekverar acceptanstegByggservern k旦r alla acceptanstest vid varje integrationsbygge. Om n奪got test inte accepteras stoppas bygget tills n奪gon fixat det!
22. Hur g旦r jag d奪?Ok, om jag nu ska skriva de h辰r egenskaperna, s奪 m奪ste jag ju veta vad jag har att jobba med!
23. Egenskap (Feature)B旦rja med att beskriva 旦nskat v辰rde!Ett bra s辰tt att skriva egenskaper 辰r:In order to <gainsomevalue>As <who am I?>I want<something> / (So that <stakeholder X is satisfied>)D奪 f奪r man det viktigaste f旦rst v辰rdet!D辰refter vad man eftertraktarSamt f旦r vem detta 辰r eftertraktat
24. vning: EgenskapTa 5min med personen till v辰nsterom dig ochf旦rs旦kskriva1avdessap奪formenIn order to/As / I want (/ So that )CPX: Implement Regions in AustraliaCAT: Avoid oversampling
25. ScenarionBeskrivs av Given/When/ThenGiven <a context>When <an event happens>Then <an outcomeoccurs>Andra ord som kan vara anv辰ndabara 辰r:And & But, ger l辰sbarhet ist辰llet f旦r att repetera n奪got av stegen.
26. And & ButScenario: Multiple Givens Given one thing Given an other thing Given yet an other thing When I open my eyes Then I see something Then I don't see something else Scenario: Multiple GivensGiven one thing And an other thing And yet an other thing When I open my eyes Then I see something But I don't see something else
27. Abstrakt Scenario (Scenario Outline)Adderar exempel till stegen i form av tabeller.Fortfarande p奪 formen Given/ When/ ThenScenario: eat 5 out of 12 Given there are 12 cucumbers When I eat 5 cucumbers Then I should have 7 cucumbersScenario: eat 5 out of 20 Given there are 20 cucumbers When I eat 5 cucumbers Then I should have 15 cucumbers Scenario Outline: eating Given there are <start> cucumbers When I eat <eat> cucumbers Then I should have <left> cucumbers Examples: | start | eat | left | | 12 | 5 | 7 | | 20 | 5 | 15 |
28. Lite mer avancerade stegdefinitionerExempel:S辰g att jag t.ex. har 3 olika anv辰ndare som jag vill exercera i min egenskap. Hur g旦r jag det d奪?T辰nk om jag h奪ller p奪 med en blogg d奪 och vill skapa en post med l奪nga textstr辰ngar
29. Flerraders stegargument (Multi step arguments)Given the followingpeopleexist: | name | email | phone | | Aslak | aslak@email.com | 123 | | Joe | joe@email.com | 234 | | Bryan | bryan@email.org | 456 | Given /the followingpeopleexist:/ do |people_table| people_table.hashes.eachdo |hash| # The first time the +hash+ willcontain: # {'name' => 'Aslak', 'email' => 'aslak@email.com', 'phone' => '123'} # The second time: # {'name' => 'Joe', 'email' => 'joe@email.com', 'phone' => '234'} # etc. endend
30. Flerradersstr辰ngar(Multiline strings)Given a blog post named "Random" with Markdown body """ Some Title, Eh? ============== Here is the first paragraph of my blog post. Loremipsum dolor sit amet, consecteturadipiscingelit. """Given /^a blog post named "([^amp;quot;]*)" with Markdown body$/ do |title, markdown| Post.create!(:title => title, :body => markdown) end
31. DRY:ing up your codeOk, nu har jag en hel del steg och grejor, men det b旦rjar se r辰tt gr旦tigt ut. Vad g旦r jag nu?
32. TransformationerMan anv辰nder transformmetoder f旦r att registrera ett regexp tillsammans med ett block. Transformen kommer k旦ras innan registrerade Regexp grupper, vilket g旦r att Transformen k旦rs innan sj辰lva Step-blocket# features/step_definitions/user_steps.rbTransform /^user +$/do |step_arg| User.find_by_username /(+)$/.match(step_arg)[0] endThen /^(user +) should be friends with (user +)$/do |user, friend| user.shouldbe_friends_with(friend) end
33. TransformationsstabellerScenario: setting up via table Given ... When ... Then I should have | name | age | | corey | 36 |Transform /^table:name,age$/do |table| table.hashes.map { |hash| hash[:name] }.map { |name| Person.find_by_name(name) } end
34. vning: ScenarioTa 5min med personensom du arbetade med ochf旦rs旦kskriva2scenarion奪t er egenskapp奪formen:Given /When / ThenCPX: Implement Regions in AustraliaCAT: Avoid oversampling
35. Kommunikation via testMen om produkt辰garen skriver alla scenarion innan oss, och det 辰r integrerat med bygget betyder det att bygget kommer va r旦tt tills vi 辰r klara d奪?
36. TaggningEtt bra s辰tt att organisera egenskaper och scenarion En egenskap eller scenario kan ha s奪 m奪nga taggar som beh旦vligtDu kan anv辰nda --tagsf旦r att k旦ra (eller l奪ta bli att k旦ra) sakercucumber--tags@billingcucumber--tags~@billingDu kan anv辰nda taggar f旦r att l辰nka in t.ex. dokumentEtt annat s辰tt 辰r att anv辰nda det i ditt work flow f旦r att f旦rmedla saker till dina kollegor, t.ex. work in progress@wip Feature: Index projects
37. TagglogikN辰r du ska k旦ra t.ex. ett par scenarion kan du v辰lja mellan att och:a eller ellra ihop dem genom:AND: cucumber--tags@billing, @importantOR: cucumber--tags@billing--tags@important
38. Begr辰nsa k旦rning med taggarOm man f旦ljer Kanban s奪 kanske man vill begr辰nsa s辰g, hur m奪nga saker som g旦rs 奪t g奪ngen. D奪 kan man anv辰nda --wip-flaggan och skriva n奪got liknande:cucumber--tags@wip:3