Wie funktioniert die Abhängigkeitsinjektion in Gurke?

9

Ich habe versucht, webdriver in die Schritte zu injizieren. Ich habe diese Anweisungen verwendet und es funktioniert gut.

Die Idee ist, WebDriver als Dienst in Steps-Klassen zu integrieren. Im ersten Schritt müssen Sie die folgende Abhängigkeit hinzufügen:

%Vor%

Es gibt drei Hauptklassen, die an der Abhängigkeitsinjektion beteiligt sind. Hier stellen wir sie einzeln vor.

BaseUtil

BaseUtil ist die Klasse mit einem Attribut für WebDriverof Selenium. Die Klasse ist ziemlich einfach:

%Vor%

Haken

Die Hook-Klasse enthält @Before, @After . Die Methode testInitialier () ist dafür verantwortlich, die webDriver Datei zu laden und eine Instanz zu erstellen, während die Methode testTearDown () für das Schließen des Browsers zuständig ist.

%Vor%

Schritte

Und die Klasse steps enthält die Schritte, die von der kompilierten Feature-Datei stammen. Um die Feature-Datei in Eclipse zu kompilieren, muss das Eclipse-Cucumber-Plugin in Ihrem Eclipse installiert sein.

%Vor%

Wie mache ich es?

Öffnen Sie die Feature-Datei - & gt; Führen Sie als - & gt; Run mit Junit

Frage

Ich frage mich, Was ist die Reihenfolge der laufenden Methoden in einer Weise, die zur Abhängigkeitsinjektion führt?

Ich denke, die Reihenfolge ist wie folgt:

  1. Junit ruft @Before method auf, was testInitializer() ist
  2. Das testInitializer() befindet sich in der Hook-Klasse, daher muss es eine Instanz von Hook class erstellen.
  3. Es führt dazu, den Konstruktor der Hook-Klasse aufzurufen.

Aber ich kann den Rest der Schritte nicht verstehen. Vielleicht stimmt es überhaupt nicht. Ich meine, Ich habe einen funktionalen Code, aber ich kann nicht erklären, wie es funktioniert?

    
Salman 18.07.2017, 09:37
quelle

1 Antwort

1

Wie ich Sie richtig verstehe, verwenden Sie JUnit als Testframework mit Gurkenfrühling. JUnit bietet den folgenden Lebenszyklus.

Wenn Sie die Methode mit Annotation @ annotieren, wird diese Methode vor jedem Test aufgerufen, den Sie haben. Wie für @After könnte für die Reinigung von Ressourcen verwendet werden und nach jedem Test aufrufen.

Ihr Testablauf beim Ausführen des Tests:

  • testInitializer
  • i_clcik_on_the_button
  • tearDownTest

Zusätzlich können Sie logging (slf4j) statt System.out.println verwenden und es wird einfacher sein, den Testablauf zu verfolgen.

    
Levik 17.09.2017 14:18
quelle