Unterschiede zwischen Test vs Spec

12

Ich habe derzeit ein Konzeptproblem und kann keine Informationen zu den Unterschieden zwischen Test (UnitTest usw.) und Spec (Rspec usw.) finden.

Soweit ich weiß, geht es bei specs um Integrationstests und bei test um UnitTest, aber genau darum.

Können Sie die Unterschiede erklären?

DFOXpro
quelle

Antworten:

12

Schauen Sie sich das folgende Diagramm an. Es zeigt die Beziehung zwischen Test-Driven Development (TDD) und Acceptance Test-Driven Development (ATDD):

Akzeptanztestgetriebenes Entwicklungsdiagramm

Beachten Sie, dass die innere Schleife TDD von der äußeren Schleife ATDD umhüllt ist. Anforderungen (dargestellt durch das Kästchen Akzeptanzkriterien) steuern die Erstellung automatisierter Akzeptanztests, die wiederum die Erstellung von Komponententests für die Implementierung vorantreiben.

Im Allgemeinen wird RSpec in Situationen verwendet, in denen Sie Tests auf eine Business Analyst-freundliche Art und Weise ausdrücken möchten, z. Während Unit-Test-Frameworks wie nUnit eher auf die Art von Unit-Tests spezialisiert sind, die aus der TDD-Perspektive des Entwicklers auf Implementierungsebene (gelber Kreis) geschrieben wurden.

Robert Harvey
quelle
Ein gutes Beispiel ist eine Hash-Tabelle, für die detaillierte Komponententests erforderlich sind, da erwartet wird, dass sie für alle möglichen Eingaben funktionieren, nicht nur für die wenigen Beispiele in den Akzeptanztests. Der Code, der den Rabatt für einen „guten“ Kunden berechnet, wird jedoch wahrscheinlich von den Akzeptanztests gut abgedeckt, sodass möglicherweise keine oder nur wenige Komponententests erforderlich sind.
Ian
3

ok, wir haben hier einige andere Begriffe, also hier ist, was los ist

  • Wir haben Unit Testing. Andere Ebenen sind Integrationstests, Leistungstests usw.
  • rspec kann für viele der oben genannten Teststufen verwendet werden, z. B. für Modelle, Steuerungen und Ansichten über Capybara-Funktionstests.
  • Das Wort "spec" kommt von der Spezifikation, die den Kern eines Tests bildet - es gibt etwas an.
  • rspec - ein Framework zum Testen von Agaist-Browsern, das häufig mit Ruby on Rails-Anwendungen verwendet wird.
  • Spezifikationsdateien - Rspec-Dateien enden normalerweise in _spec.rb und werden häufig als Spezifikationsdateien bezeichnet.
Michael Durrant
quelle