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



 

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.

Nix mehr verpassen: Die t3n Newsletter zu deinen Lieblingsthemen! Jetzt anmelden

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.

Anzeige „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.

https://samplecic.ch/cypress-das-beste-testing-framework-furs-frontend.html

Комментарии

Популярные сообщения из этого блога

Wichtiges Entwickler-Tool: Homebrew für M1-Macs und MacOS 11 Big Sur erschienen

Centered Logos Hurt Website Navigation

5 Real Life Blockchain Implementations Outside of Cryptocurrency