Loading AI tools
Software um andere Software automatisiert zu testen Aus Wikipedia, der freien Enzyklopädie
Cucumber ist ein Behavior-Driven-Development-Werkzeug zur textuellen Spezifikation von Anforderungen an Software und zur automatisierten Überprüfung dieser Beschreibung auf ihre korrekte Implementierung.
Cucumber | |
---|---|
Basisdaten | |
Hauptentwickler | Aslak Hellesøy, Joseph Wilk, Ben Mabey, Matt Wynne, Mike Sassak, Gregory Hnatiuk[1] |
Erscheinungsjahr | 2008 |
Aktuelle Version | 9.1.2[2] (7. Mai 2023) |
Betriebssystem | Plattformunabhängig |
Programmiersprache | Ruby, Java, C++, JavaScript |
Kategorie | Behavior Driven Development Framework |
Lizenz | MIT-Lizenz |
deutschsprachig | ja |
cucumber.io |
Cucumber wurde ursprünglich in der Programmiersprache Ruby für Ruby-Anwendungen geschrieben,[3][4] inzwischen unterstützt es aber auch andere Programmiersprachen wie Java und alle anderen auf der Java Virtual Machine laufenden Programmiersprachen sowie C++ und JavaScript.[5] Darüber hinaus gibt es Projekte, die Cucumber noch für weitere Programmiersprachen zur Verfügung stellen und sich als Teil der Cucumber-Familie sehen, darunter beispielsweise SpecFlow, eine Implementierung für C#.[6]
Wie auch bei den meisten anderen Behavior-Driven-Development-Tools werden in Cucumber Funktionalitäten mittels der Beschreibungssprache „Gherkin“ beschrieben.[7] Gherkin verwendet natürliche Schriftsprache als Grundlage, einzig bestimmte Schlüsselwörter werden besonders behandelt. Damit eine Funktionalität auf Deutsch geschrieben werden kann, muss am Beginn des Features # language: de
angegeben werden. Damit sind u. a. die Schlüsselwörter Funktionalität, Grundlage, Szenario, Szenariogrundriss, Beispiele, Angenommen, Gegeben sei, Wenn, Dann, Und und Aber, sowie *
vorbelegt.[8]
Eine derartig beschriebene Funktionalität könnte beispielsweise aus einem einzigen Szenario bestehen und folgendermaßen aussehen:[9]
# language: de Funktionalität: Division Um Fehler zu vermeiden, müssen die Kassierer in der Lage sein, Divisionen auszurechnen Szenario: Regular numbers Angenommen ich habe die Zahl 3 im Taschenrechner eingegeben Und ich habe die Taste "Division" gedrückt Und ich habe die Zahl 2 im Taschenrechner eingegeben Wenn ich auf die Taste "Gleich" drücke Dann sollte als Resultat 1,5 am Bildschirm ausgegeben werden
Diese in Gherkin auf Deutsch beschriebene Funktionalität kann jetzt beispielsweise in Ruby abgearbeitet werden. Dazu werden die mittels der Schlüsselwörter markierten Zeilen in einzelnen Schritten (engl. steps) abgearbeitet. Bei der Definition der Schritte (engl. step definitions) bedient sich Cucumber regulärer Ausdrücke, um ähnlich formulierte Schritte gleichermaßen abarbeiten zu können bzw. um auf variable Definitionen, wie die Zahlen 2, 3, und 1,5 in diesem Beispiel, reagieren zu können:[10]
# encoding: utf-8
begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
require 'cucumber/formatter/unicode'
$:.unshift(File.dirname(__FILE__) + '/../../lib')
require 'taschenrechner'
Before do
@calc = Taschenrechner.new
end
After do
end
Given /ich habe die Zahl (\d+) im Taschenrechner eingegeben/ do |n|
@calc.push n.to_i
end
When /ich auf (\w+) drücke/ do |op|
@result = @calc.send op
end
Then /sollte als Resultat (.*) am Bildschirm ausgegeben werden/ do |result|
@result.should == result.to_f
end
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.