Die beste Methode zum Organisieren von Tests in RSpec mit einer Kombination von Faktoren [geschlossen]

8

Ich erstelle einige Tests mit verschiedenen Eingaben. Ich teste eine Einkaufswebsite mit neuen und wiederkehrenden Benutzertypen, verschiedenen Produkten, Aktionscodes und Zahlungsoptionen. Ich hatte das Gefühl, dass dies ein datengetriebener Testsatz war, der wahrscheinlich ein CSV- oder Tabellenkalkulationsformat der Testeingaben forderte.

Ich habe rspec verwendet, was perfekt für den letzten Testsatz war, den ich erstellt habe.

Ich möchte konsistente Ergebnisformate haben. Ich bin fest, wie Datentabellen mit RSpec verwendet werden. Hat jemand RSpec mit einer Tabelle von Testeingaben verwendet?

Vielen Dank im Voraus für eine direkte Lösung oder einen guten Rat.

    
Dave McNulla 06.01.2012, 07:12
quelle

3 Antworten

14

Wenn Sie eine Tabelle verwenden möchten, würde ich sie in der Testdatei in etwa so definieren ...

%Vor%     
Steve Jorgensen 06.01.2012, 07:24
quelle
2
%Vor%

Ausgabe:

%Vor%     
steenslag 06.01.2012 09:17
quelle
2

Ein idiomatischer Ansatz wäre die Verwendung von RSpec freigegebenen Beispielen Parameter. Ich gehe davon aus, dass jede Tabellenzeile einem bestimmten Testfall entspricht und die Spalten die beteiligten Variablen aufschlüsseln.

Angenommen, Sie haben einen Code, der den Preis eines Autos basierend auf seiner Konfiguration berechnet. Angenommen, wir haben eine Klasse Car und möchten testen, ob die Methode price dem vom Hersteller empfohlenen Verkaufspreis (MSRP) entspricht.

Möglicherweise müssen wir folgende Kombinationen testen:

%Vor%

Lassen Sie uns ein gemeinsames Beispiel erstellen, das diese Informationen erfasst und auf das richtige Verhalten hin überprüft.

%Vor%

Nachdem wir dieses gemeinsame Beispiel geschrieben haben, können wir dann mehrere Konfigurationen ohne die Last der Code-Duplizierung kurz und bündig testen.

%Vor%

Wenn wir diese Spezifikation ausführen, sollte die Ausgabe das folgende Format haben:

%Vor%     
Patrick McLaren 26.04.2016 01:41
quelle

Tags und Links