Was sind die verschiedenen Bedeutungen von "Fixture"?

19

Ich habe einige Schwierigkeiten, das Konzept von "Fixture" zu verstehen. Ich weiß, was eine Testsuite ist, ein Testfall, ein Testlauf, aber was genau ist ein "Fixture"? Ein parametrisierter Testfall?

Es scheint mir, dass die Bedeutung oder Semantik des Begriffs "Fixture" je nach Programmiersprache oder Testframework leicht variieren kann. Ich denke ein Phpunit Fixture

" Der Code, um die Welt in einen bekannten Zustand zu versetzen und sie nach Abschluss des Tests wieder in ihren ursprünglichen Zustand zu versetzen. Dieser bekannte Zustand wird Fixture des Tests genannt. "

unterscheidet sich geringfügig von einem " Fitnessgerät ", bei dem

" Fixtures sind eine Brücke zwischen den Wiki-Seiten und dem System Under Test (SUT), dem eigentlichen zu testenden System. "

Gibt es hier einen Experten für Softwaretests, der diese Frage beantworten kann? Verweise auf andere Programmiersprachen sind willkommen.

knb
quelle
1
@chris (und knb) Bitte geben Sie Antworten als Antworten ein, nicht Änderungen an der Frage.
Ich
bin

Antworten:

19

Im Zusammenhang mit den von Ihnen erwähnten Testtools wie PHPUnit und Fitnesse bezieht sich dieser Begriff definitiv auf den Begriff Test Fixture :

etwas, das verwendet wird, um ein Element, ein Gerät oder eine Software ständig zu testen ...

Software

Testvorrichtung bezieht sich auf den festen Zustand, der als Basis für die Ausführung von Tests beim Softwaretesten verwendet wird . Der Zweck einer Testvorrichtung besteht darin, sicherzustellen, dass es eine bekannte und feste Umgebung gibt, in der Tests ausgeführt werden, damit die Ergebnisse reproduzierbar sind. Einige Leute nennen dies den Testkontext .

Beispiele für Vorrichtungen:

  • Laden einer Datenbank mit einem bestimmten, bekannten Datensatz
  • Löschen einer Festplatte und Installieren einer bekannten sauberen Betriebssysteminstallation
  • Kopieren eines bestimmten bekannten Satzes von Dateien
  • Aufbereitung der Eingabedaten und Einrichtung / Erstellung von Fake- oder Mock-Objekten ...

Verwendung von Vorrichtungen

Zu den Vorteilen von Fixtures gehören die Trennung der Testinitialisierung (und -zerstörung) vom Test, die Wiederverwendung eines bekannten Status für mehr als einen Test und die spezielle Annahme des Test-Frameworks, dass der Fixture-Setup funktioniert ...

Mücke
quelle
2
Zusammenfassend ist ein Gerät ein Objekt mit einem bekannten Status , mit dem Tests (oder was auch immer) fortfahren können und die erwarteten Ergebnisse haben.
Dave Thieben
Daher würde ich sagen, ein Fixture ist eine Art Abstraktion einer Testsuite. Vielleicht war ich verwirrt, weil die Leute manchmal synonym den Begriff Fixture (die Abstraktion oder das zustandsbehaftete Objekt zu Beginn der Testlaufzeit) und die Fixture-Konfiguration (die Konfiguration, die gespeichert wurde, um von den setup () -Methoden verarbeitet zu werden) verwenden.
Knb
4

Außerhalb des Testkontexts wird der Begriff Fixture manchmal verwendet, um die anfänglichen Daten im Speicher (wie die anfänglichen Daten in einer Datenbank) zu beschreiben, wenn eine Anwendung zum ersten Mal bereitgestellt wird.

Pavels
quelle