Ich habe diesen Begriff schon oft gehört (wenn ich über Programmierung spreche), konnte aber keine Erklärung finden, was das bedeutet. Irgendwelche guten Artikel oder Erklärungen? Ich habe nichts Erwähnenswertes gefunden.Was sind Fixtures in der Programmierung?
Antwort
Ich glaube, Sie beziehen sich auf test fixtures:
Der Zweck einer Prüfvorrichtung, um sicherzustellen, dass es eine bekannte ist und feste Umgebung, in der Tests ausgeführt werden, so dass die Ergebnisse wiederholbar sind. Manche Leute nennen dies den Testkontext.
Beispiele für Befestigungen:
- Loading a database with a specific, known set of data - Erasing a hard disk and installing a known clean operating system installation - Copying a specific known set of files - Preparation of input data and set-up/creation of fake or mock objects
(Quelle: wikipedia, siehe Link oben)
Hier sind auch einige practical examples from the documentation of the 'Google Test' framework.
Genau zu diesem Thema hat JUnit ein gut erklärt Dokument. Here ist der Link!
Der entsprechende Teil des Artikels ist:
Tests vor dem Hintergrund einer bekannten Menge von Objekten ausgeführt werden müssen. Dieser Satz von Objekten wird als Testvorrichtung bezeichnet. Wenn Sie Tests schreiben, werden Sie oft feststellen, dass Sie mehr Zeit damit verbringen, den Code zum Einrichten des Geräts zu schreiben, als beim Testen von Werten.
Bis zu einem gewissen Grad können Sie den Fixture-Code leichter schreiben, indem Sie sorgfältig auf die Konstruktoren achten, die Sie schreiben. Eine viel größere Ersparnis ergibt sich jedoch durch den Austausch von Vorrichtungscode. Oft können Sie dieselbe Vorrichtung für mehrere verschiedene Tests verwenden. Jeder Fall sendet leicht unterschiedliche Nachrichten oder Parameter an das Gerät und prüft auf unterschiedliche Ergebnisse.
Wenn Sie eine gemeinsame Halterung haben, hier ist was Sie tun:
für jeden Teil der Befestigung Anmerken ein Verfahren ein Feld hinzufügen mit @ org.junit.Before und die Variablen in dieser Methode Beschriften initialisieren Eine Methode mit @ org.junit.Nachdem alle permanenten Ressourcen freigegeben werden sollen, die Sie in setUp zugewiesen haben. Erstellen Sie zum Beispiel mehrere Testfälle, die mit verschiedenen Kombinationen von 12 Schweizer Franken, 14 Schweizer Franken und 28 US-Dollar arbeiten möchten eine Vorrichtung:
public class MoneyTest {
private Money f12CHF;
private Money f14CHF;
private Money f28USD;
@Before public void setUp() {
f12CHF= new Money(12, "CHF");
f14CHF= new Money(14, "CHF");
f28USD= new Money(28, "USD");
}
}
Ich denke, PHP-Unit-Tests sehr gut haben dies zu erklären:
Einer der zeitaufwendigste Teile Schreiben von Tests wird den Code zu schreiben, die Welt zu setzen in einem bekannten Zustand und es dann wieder zu seinem ursprünglichen Zustand, wenn der Test abgeschlossen ist. Dieser bekannte Zustand wird der Befestigung des Tests genannt.
Auch Yü Dokumenten beschriebenen Vorrichtungen Test in einer guten Form:
Automatisierte Tests viele Male ausgeführt werden müssen.Um sicherzustellen, dass der Test Prozess wiederholbar ist, möchten wir die Tests in einigen bekannten State namens Fixture ausführen. Um zum Beispiel das Nacherstellungsmerkmal in einer Blog-Anwendung zu testen, sollten die Tabellen , die relevante Daten über Beiträge speichern (z. B. die Tabelle Post, die Tabelle Comment ), in einen festen Zustand zurückversetzt werden.
Hier ist das einfache Beispiel von Vorrichtungen Test
<?php
use PHPUnit\Framework\TestCase;
class StackTest extends TestCase
{
protected $stack;
protected function setUp()
{
$this->stack = [];
}
protected function tearDown()
{
$this->stack = [];
}
public function testEmpty()
{
$this->assertTrue(empty($this->stack));
}
public function testPush()
{
array_push($this->stack, 'foo');
$this->assertEquals('foo', $this->stack[count($this->stack)-1]);
$this->assertFalse(empty($this->stack));
}
public function testPop()
{
array_push($this->stack, 'foo');
$this->assertEquals('foo', array_pop($this->stack));
$this->assertTrue(empty($this->stack));
}
}
?>
Diese PHP-Unit-Test-Funktionen mit Namen hat setUp
und tearDown
das vor Ihrem Test, den Sie Setup-Daten ausgeführt und fertig Sie sie auf die ursprüngliche wiederherstellen Zustand.