2014-03-18 23 views
18

Kann mir jemand den Unterschied zwischen Rspec, Capybara und Gurke sagen?Unterschied zwischen Rspec, Capybara und Gurke

group :development, :test do 
    gem 'rspec-rails', '~> 2.0' 
end 

group :test do 
    gem 'capybara', '~>2.1.0' 
end 

In JavaScript, sehe ich Jasmine als meine Unit-Test-Framework. Was machen diese drei Edelsteine ​​in Ruby-Umgebung?

Antwort

48

rspec ist ein umfassendes Testframework, mit dem Sie schreiben können, was Rails Komponententests, Funktionstests und Integrationstests beschreibt. Alle diese üben Ruby-Code durch verschiedene Schichten Ihrer Rails-Anwendung aus. Alle diese Tests simulieren Anforderungen an Ihre Rails-Anwendung, führen die Anwendung jedoch nicht Ende-zu-Ende über das Netzwerk aus.

cucumber ist ein browserbasiertes Integrationstest-Framework, mit dem automatisierte Tests geschrieben werden können, die gegen die gesamte Rails-Anwendung laufen, auf die über einen automatisierten Webbrowser zugegriffen wird. Auf diese Weise können Sie automatisierte Tests zu In-Browser-Verhalten für JS oder CSS schreiben. Cucumber bietet einen einzigartigen Blickwinkel auf Integrationstests, bei denen die einfache englische Spezifikation dem Code über reguläre Ausdrücke zugeordnet wird. Dies ermöglicht ein natürlicheres "Behavior Driven Development" -Modell, das beschreibt, was eine Web-Anwendung in einfacher Sprache aus der Sicht des Benutzers tun sollte.

capybara ist ein spezieller Webtreiber, der das Integrationstestframework cucumber ansteuert, das headless webkit verwendet. Auf diese Weise kann ein Chrome/Webkit-Browser ohne Benutzeroberfläche für automatisierte Tests ausgeführt werden. Dies ist sowohl in der Entwicklung als auch auf einem Remote-Test-/Continuous-Integration-Server sehr nützlich.

So rspec und cucumber sind ähnlich in der Angabe Dinge Test-Frameworks mit ihrem eigenen Weg zu sein. rspec hat eine nette DSL, die sehr lesbar ist, während sie tatsächlich Code ist. cucumber mappt Klartextbeschreibungen zu echtem Code.

Obwohl cucumber normalerweise oben auf Capybara verwendet wird, können Sie auch rspec verwenden, um capybara Integrationstests durchzuführen. Die Tests werden entweder in rspec oder gurke geschrieben, aber capybara ist eine Integrationsengine darunter.

Verwandte Themen