Kurzfassung
Capybara ist eine Ruby-Bibliothek für Acceptance Testing von Webanwendungen, die eine domänenspezifische Sprache bereitstellt, um zu simulieren, wie echte Nutzer durch Seiten navigieren – unabhängig vom verwendeten Browser-Driver.
Was ist Capybara?
Capybara kapselt Browser- oder Rack-Level-Interaktionen hinter einer sauberen Ruby-DSL. Ein Test kann Capybara anweisen, eine URL aufzurufen, ein Formular auszufüllen, einen Button zu klicken und sichtbare Inhalte zu prüfen – ohne den Test an ein bestimmtes Browser-Automatisierungswerkzeug zu koppeln. Driver wie Rack::Test (schnell, headless) oder Selenium (echter Browser) lassen sich austauschen.
Capybara integriert sich nahtlos in RSpec und Cucumber und ist damit ein zentrales Element von BDD-Testsuiten für Ruby-on-Rails-Anwendungen. Die API ist so gestaltet, dass sie für jeden verständlich ist, der mit der Benutzeroberfläche der Anwendung vertraut ist.
Asynchrone Inhalte werden automatisch behandelt: Capybara wartet, bis Elemente erscheinen, bevor es Assertions durchführt, und vermeidet so häufige Timing-Probleme in Web-Tests.
Warum ist Capybara relevant?
- Driver-agnostisch: Wechsel zwischen schnellen In-Process-Tests und vollständiger Browser-Automatisierung ohne Umschreiben der Testlogik
- Lesbare Tests: Die DSL spiegelt Benutzeraktionen wider und hält Acceptance Tests für Nicht-Entwickler verständlich
- Rails-Ökosystem-Standard: De-facto-Wahl für Acceptance- und Integration-Testing in Ruby-on-Rails-Projekten