Vad är gurka?
Gurka används för beteendedriven utveckling. Cucumber låter mjukvaruutvecklingsteam beskriva hur programvara ska bete sig i vanlig text. Texten är skriven på ett företagsläsbart domänspecifikt språk och fungerar som dokumentation, automatiserade tester och utvecklingshjälp – allt i ett format.
Gurka jobbar med Ruby on Rails, Java, .NET, Flex eller webbapplikationer skrivna på valfritt språk. Den har översatts till över 40 talade språk. Gurka stöder också mer kortfattade tester i tabeller – liknande vad FIT gör.
Installera gurka för Rails 3:
Installera gurka, Rspec-rails och capybara gem
sudo gem installera gurka-rails sudo gem installera database_cleaner sudo gem installera rspec-rails sudo gem installera capybara
-
Gurka är ett ramverk för beteendedriven utveckling (BDD) som är särskilt bra för integration och funktionstester
- RSpec är ett ramverk för beteendedriven utveckling (BDD) för lågnivåtestning på Ruby-språket
- database_cleaner utför DB-rensning vid testning
- capybara som simulerar en webbläsare, automatiserar en webbläsare eller ställer förväntningar med hjälp av matcharna.
Använda gurka för att testa rails 3-applikation:
1. Skapa en ny Rails-applikation Lagra
$rails nya butik -d mysql
2. Redigera Gemfilen
Inkludera gurka ädelstenar i en Rails 3-applikation
grupp :test, :development do gem 'rspec-rails' gem 'cucumber-rails' gem 'capybara' gem 'database_cleaner' slutet 3. paketinstallation
4. Installera gurkskelettfilerna i en Rails 3-applikation.
$-skenor genererar gurka:installera
Generatorn för gurkskenor skapar katalogerna:
funktioner/steg_definitioner
funktioner/support
Generatorn för gurkskenor skapar filerna:
config/cucumber.yml
features/support/env.rb
lib/tasks/cucumber.rake
manus/gurka
5. kratta db:create 6. rake db:migrate
7. Kör Cucumber-funktionerna
$rake gurka
Skapa gurka funktioner:
- Skapa en gurkafunktion för RoR 3-applikationstestning
$vi funktioner/manage_store.feature
- Cucumber Feature är specifikationen för affärsanvändartestning skriven på vanlig engelska med ett specifikt format
Funktionsformat
Funktion: ... I ordning ... Någon skådespelare ... borde ... Scenarie: ... Given ... Och ... När ... OCH ... Då ... OCH ...
Implementera teststegen och Ruby on Rails modellkod för Cucumber on Rails:
- Skapa gurka steg definitioner
$vi features/step_definitions/order_steps.rb
- Cucumber använder reguljärt uttryck för att matcha sträng och skicka den till stegdefinitionerna
- Kör Gurka
$rake gurka
Ett exempel kan vara förmågan att leda företag:
Funktion: Hantera företag För att hålla reda på företag bör användaren kunna hantera företag Scenario: Skapa ett nytt företag Med tanke på att jag är inloggad När jag skapar ett nytt företag som heter Acme Då borde jag se att det finns ett företag som heter Acme Funktioner/ företag.funktion steg/ företagssteg.rb Givet == Setup Med tanke på "Jag är inloggad" gör det användare = Fabrik(:användare) besöker new_session_path fills_in 'Logga in', :with => user.login fills_in 'Lösenord', :med => användare.lösenord clicks_button 'Logga in' slutet Med tanke på "Jag är inloggad" gör det användare = Fabrik(:användare) besöker new_session_path fills_in 'Logga in', :with => user.login fills_in 'Lösenord', :med => användare.lösenord clicks_button 'Logga in' slutet När == Ändra När "Jag skapar ett nytt företag som heter $name" gör |name| besöker new_company_path fills_in 'Namn', :med => namn clicks_button "Skapa" slutet Sedan == Utfall Sedan "Jag borde se att det finns ett företag som heter $name" gör |name| response.body.should =~ Regexp.new(name) slutet Vid varje steg måste du köra gurka och kontrollera resultatet.