2017-04-11 2 views
1

Say I ein Funktionstest-Szenario in example1.feature habe, die einen Schritt wiedie gleichen gherkin Schritte in mehrere codeception Funktionstests Mit

hat "in der Datenbank Ich habe etwas"

In meinem Ordner Schritte habe ich die Implementierung dieses Schrittes in der Datei example1.php.

Jetzt sagen, ich möchte denselben Schritt in example2.feature verwenden. Ich weiß, dass, wenn ich diesen Schritt in example2.php nicht implementiere, es automatisch die Implementierung von example1.php verwenden wird.

Aber ist das zu empfehlen? Implementieren von Schritten für einen Test in der Klasse eines anderen Tests? Es scheint, als würde das Testgruppe Isolation brechen ...

Oder sollte ich den Code in example2.php kopieren, so dass jeder Test seine eigene Implementierung der Schritte hat? Scheint sehr untrocken und ein Wartungsalbtraum ...

Oder gibt es eine andere empfohlene Möglichkeit, um mit dieser Art von Situation umzugehen, vielleicht, wenn alle Schrittklassen eine gemeinsame Klasse erweitern, die Schritte definiert, die in mehreren Tests verwendet werden?

Antwort

0

Ist es möglich, zwei Implementierungen für denselben Schritt zu haben? In anderen Geschmacksrichtungen von Cucumber wetten Sie auf einen mehrdeutigen Schrittfehler. Das Tool weiß nicht, welche Implementierung verwendet werden soll.

Wenn es mit zwei Implementierungen möglich ist, dann würde ich mich nicht darum kümmern, welche Datei ein Schritt implementiert ist. Ich würde mir mehr Sorgen darüber machen, an zwei Stellen dieselbe Implementierung zu haben.

Der Grund, warum ich mehr über zwei Implementierungen besorgt wäre, ist, dass es keinen guten Weg gibt zu wissen, dass sie während der Wartung nicht abweichen. Wenn sie abweichen, enden Sie in einer Situation, in der derselbe Schritt in Gherkin zwei verschiedene Dinge bedeutet. Das wäre schlecht.

Verwandte Themen