Testen der Rails 3.2.3-Anwendung mit Cucumber (BDD)

Was ist Gurke?

Cucumber is used for Behavior Driven Development. Cucumber lets software development teams describe how software should behave in plain text. The text is written in a business-readable domain-specific language and serves as documentation, automated tests and development-aid – all rolled into one format.

Gurke funktioniert mit Ruby auf Schienen, Java, .NET, Flex or web applications written in any language. It has been translated to over 40 spoken languages. Cucumber also supports more succinct tests in tables – similar to what FIT does.

Gurke für Rails 3 installieren:

Installieren Sie Cucumber, Rspec-Rails und Capybara Gem

Sudo Gem Installgurke-Rails Sudo Gem Install Database_Cleaner Sudo Gem Install Rspec-Rails Sudo Gem Install Capybara
  • Cucumber ist ein BDD-Framework (Behavior Driven Development), das sich besonders für Integrations- und Funktionstests eignet

  • RSpec ist ein verhaltensgesteuertes Entwicklungsframework (BDD) für Low-Level-Tests in der Ruby-Sprache
  • „database_cleaner“ führt im Test eine DB-Bereinigung durch
  • Capybara simuliert einen Browser, automatisiert einen Browser oder setzt Erwartungen mithilfe der Matcher.

 

Verwendung von Cucumber zum Testen der Rails 3-Anwendung:

1. Erstellen Sie eine neue Rails-Anwendung speichern

$rails neuer Store -d MySQL

2. Bearbeiten Sie die Gemfile

Binden Sie die Cucumber-Gems in eine Rails 3-Anwendung ein

   Gruppe :test, :development do gem 'rspec-rails' gem 'cucumber-rails' gem 'capybara' gem 'database_cleaner'
 Ende
3. Bundle-Installation

4. Installieren Sie die Gurken-Skelettdateien in einer Rails 3-Anwendung.

$-Schienen erzeugen Gurke:install 

Der Gurken-Rails-Generator erstellt die Verzeichnisse:

Features/Schrittdefinitionen

Funktionen/Unterstützung

Der Gurken-Rails-Generator erstellt die Dateien:

config/cucumber.yml

Features/support/env.rb

lib/tasks/cucumber.rake

Skript/Gurke

5. Rechen db:create 6. rake db:migrate

7. Führen Sie die Cucumber-Funktionen aus

$rake-Gurke

Gurkenfunktionen erstellen:
  • Erstellen Sie ein Cucumber-Feature für RoR 3-Anwendungstests

$vi Features/manage_store.feature

  • Cucumber Feature ist die Testspezifikation für Geschäftsanwender, die in einfachem Englisch mit einem bestimmten Format verfasst ist

Feature-Format

 Besonderheit: ...
   In der Reihenfolge ... Irgendein Schauspieler ... Sollte ... Szenario: ... Gegeben ... Und ... Wann ... UND ... Dann ... UND ...

Implementieren Sie die Testschritte und den Ruby on Rails-Modellcode für Cucumber on Rails:

  • Erstellen Sie Cucumber-Schrittdefinitionen

$vi Features/step_definitions/order_steps.rb

  • Cucumber verwendet einen regulären Ausdruck, um eine Zeichenfolge abzugleichen und an die Schrittdefinitionen zu übergeben
  • Gurke ausführen
$rake-Gurke
Ein Beispiel könnte die Fähigkeit sein, Unternehmen zu verwalten:
Funktion: Unternehmen verwalten

 Um den Überblick über Unternehmen zu behalten, sollte der Benutzer in der Lage sein, Unternehmen zu verwalten

Szenario: Erstellen Sie ein neues Unternehmen

 Vorausgesetzt, ich bin eingeloggt

 Wenn ich ein neues Unternehmen namens Acme gründe

 Dann sollte ich sehen, dass es eine Firma namens Acme gibt 

Merkmale/

unternehmen.feature

Schritte/

company_steps.rb

Gegeben == Setup

Unter der Voraussetzung „Ich bin angemeldet“ tun Sie dies

Benutzer = Factory(:Benutzer)

besucht new_session_path

fills_in 'Anmelden',

:with => user.login

fills_in 'Password', :with => user.password

clicks_button 'Anmelden'

Ende

Unter der Voraussetzung „Ich bin angemeldet“ tun Sie dies

Benutzer = Factory(:Benutzer)

besucht new_session_path

fills_in 'Anmelden',

:with => user.login

fills_in 'Password', :with => user.password

clicks_button 'Anmelden'

Ende

Wann == Ändern

Wenn „Ich erstelle eine neue Firma mit dem Namen $name“, führen Sie |name| aus

besucht new_company_path

fills_in 'Name', :with => name

clicks_button 'Erstellen'

Ende

Dann == Ergebnis

Dann „Ich sollte sehen, dass eine Firma namens $name existiert“ machen Sie |name|

Response.body.should =~ Regexp.new(name)

Ende

Bei jedem Schritt müssen Sie die Gurke ausführen und das Ergebnis überprüfen.

Nehmen Sie Kontakt mit uns auf.

Abonnieren Sie die neuesten Updates

zusammenhängende Posts

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

German
English
English
Japanese
German
French
Spanish

WhatsApp uns

Beenden Sie die mobile Version