Tool-Tipp

Cypress: Das beste Testing-Framework fürs Frontend?

(Foto: REDPIXEL.PL / Shutterstock)

Cypress ist ein Framework fürs Testing von Web-Anwendungen. Das Open-Source-Framework ähnelt auf den ersten Blick Selenium, ist aber fundamental anders und angeblich besser, einfacher und schneller. Wir haben einen genaueren Blick auf das Tool geworfen.

Ein Softwaretest prüft und bewertet Software auf Erfüllung der für ihren Einsatz definierten Anforderungen und misst ihre Qualität. Die gewonnenen Erkenntnisse werden zur Erkennung und Behebung von Softwarefehlern genutzt – sagt Wikipedia.

Drei verbreitete Arten von Tests sind:

  • Unit-Tests – kleine Tests, mit denen eine ganz spezifische Funktionalität getestet werden soll.
  • Integration-Tests – Tests, mit denen das Zusammenspiel verschiedener Funktionalitäten getestet werden soll.
  • End-to-End-Testing – Testing des gesamten Programmflows von Anfang bis Ende.

Zur Automatisierung von Tests gibt es eine Reihe von Frameworks; bekannte Namen sind zum Beispiel Mocha, Jasmine oder auch Jest. Viele davon basieren auf Selenium. Selenium ist so etwas wie ein Industriestandard. Für Entwickler, die über ausgereifte Programming- und Skriptingskills verfügen, bietet Selenium eine Flexibilität, die viele andere Tools vermissen lassen. Mit Selenium könnt ihr Tests in Java, Groovy, Python, C#, Ruby, PHP und Perl schreiben, die auf allen Systemen und in allen Browsern – Chrome, IE, Firefox und sogenannten Headless Browsern, also Browsern ohne grafische Benutzeroberfläche – laufen. Der Nachteil: Um mit Selenium vernünftig arbeiten zu können, braucht ihr schon wirklich ausgereifte Codingskills und müsst relativ viel Zeit investieren, bis ihr alles konfiguriert und aufgesetzt habt.

„Testing was broken“

Wollt ihr testen, ob eure App für den User so zu nutzen ist, wie ihr das vorgesehen habt, sind End-to-End-Tests das Mittel der Wahl. Sinnvoll verfasst, sind sie dem Nutzerverhalten am Nächsten – Probleme und Bugs in eurer App findet ihr am ehesten durch End-to-End-Tests. End-to-End-Tests sind aber auch kostspielig. Sie zu schreiben, dauert lange, sie auszuführen auch. Sie sind fragil und der Prozess wird von vielen Entwicklern als anstrengend empfunden. Aus diesen Gründen (Zeit, Ressourcen, Mühe) entscheiden sich viele Frontend-Entwickler beim Testing ihrer Applikationen für einzelne Unit- und Integration-Tests. Genau hier setzt Cypress an. Mit Cypress könnt ihr Tests für alles schreiben, was in einem (Chromium-basierten) Browser läuft. Das Framework will Setup, Schreiben, Durchführung und Debugging von End-to-End-Tests vereinfachen. Integration- und Unit-Tests sollen damit ebenfalls einfacher werden.

Cypress bedient sich bei anderen Frameworks

Cypress macht Anleihen bei Mochas bdd-Syntax – die sich für Unit- als auch Integration-Tests gleichermaßen eignet. Alle Tests, die ihr in Cypress schreiben werdet, basieren auf den folgenden Methoden:

describe(), context(), it(), before(), beforeEach(), afterEach(), after(),.only() und .skip()

Außerdem von Mocha übernommen: Der async-Support des Frameworks. Den haben die Cypress-Macher etwas modifiziert, alle Anpassungen sind jedoch komplett transparent. Während Mocha die Struktur stellt, kommen die Assertions in Cypress von Chai, die aufgrund der besonders guten Lesbarkeit und den On-Point-Fehlermeldungen in Cypress adaptiert wurden. Cypress schaut sich verschiedene jQuery-Chainer-Methoden von Chai-jQuery ab, stubs und spies von Sinon-Chai und kommt mit einer Reihe weiterer Library-Utilities.

 

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Ein Kommentar
Bla Blubb
Bla Blubb

„Das Framework ist für eine Sache ausgelegt: End-to-End-Tests für eure App – und zwar während des Entwicklungsprozesses, nicht danach.“

Und warum nicht danach? Was spricht dagegen, die Tests danach auszuführen? Welche Tests sollten stattdessen nach dem Entwicklungsprozess ausgeführt werden?

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 65 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung