2015-08-28 21 views
5

Derzeit verwenden wir TDD und Planung, um mit Jbehave in BDD zu migrieren. Ich habe gerade eine Google-Suche durchgeführt und konnte keine Website für testNG mit Jbehave finden. Ich habe gerade die offizielle Website von Jbehave durchgesehen, wo ich verstanden habe, dass es möglich ist, die jbehave-Bibliothek mit jedem Unit-Test-Tool wie TestNg, Junit zu integrieren. Aber ich habe keinen Beispielcode gefunden, der es tatsächlich macht. ich die folgenden Schritte von einigen Experten erwartet:Ist es möglich, Jbehave mit testNG zu integrieren?

  1. Wie eine einfache Java-Datei mit JBehave + TestNG erstellen.
  2. Ist es möglich, alle Funktionen von TestNG zu verwenden, nachdem ich mit JBehave umgesetzt (Wie, Anmerkungen. BeforeClass, Afterclass, BeforeSuite, AfterSuite)

  3. Wie die JBehave Funktion Datei/Klasse durch TestNG laufen. XML-Datei.

  4. Wie integrierte benutzerdefinierte Testbericht in Jbehave?

Ich erwarte wirklich kein praktisches Beispiel oder Code zu arbeiten. Ich möchte nur die Übersichtsreise und einige Eingaben verstehen, um diese Aufgabe zu erfüllen.

Es ist wirklich hilfreich Wenn jemand einen Link teilt, und sehr grundlegender Code, der mich deutlicher macht.

Die folgenden Dinge so weit habe ich versucht:

Feature-Datei:

Scenario: Check the google search engine 
Given : Open the google home page www.google.com 
When : Enter test automation in search box 
Then : Proper result should be displayed in results page 

Prüfschritt Klassendatei:

public class GoogleSearchEngine_Steps { 

    public static WebDriver driver; 

    @Given("Open the google home page $url") 
    public static void openUrl(String url) throws Exception { 
     try { 

      driver = new FirefoxDriver(); 
      driver.get(url); 

     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 

    @When("Enter $searchKeyword in search box") 
    public static void searchKeyword(String searchKeyword) throws Exception { 
     try { 

      driver.findElement(By.xpath(".//*[@id='gs_htif0']")).sendKeys(searchKeyword); 
      driver.findElement(By.xpath(".//*[@id='tsf']/input[1]")).click(); 

     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 

    @Then("Proper result should be displayed in results page") 
    public static void result() throws Exception { 
     try { 

      driver.quit(); 

     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 

    } 

Aber stecken eine Testläufer-Klasse-Datei mit testng zu erstellen. Ich bin mir nicht sicher, wie ich anfangen soll.

Kann mir jemand helfen, eine Test-Runner-Klassendatei zu erstellen, die den obigen Code ausführt.

Ich lese einige der Materialien, aber ich habe nicht genügend Zeit, all diese zu lesen, und implementieren Es wäre sehr dankbar, wenn jemand mir helfen würde.

Antwort

4
  1. Von JBehave's FAQ:

Eine schnelle Lösung mit TestNG zu laufen ist einfach die Methode run() in Ihrem Stamm JUnitStory/Geschichten-Klasse mit der TestNG @Test Anmerkung zu annotieren:

Beachten Sie, dass dies nur eine Möglichkeit zum Ausführen von Stories ist. Wenn Sie andere auf Embedder basierende Methoden verwenden, müssen Sie die Testanmerkung u ändern sed entsprechend.

Für die Embedder-basierten Methoden gibt es Dokumentation here.

  1. Sie wollen wahrscheinlich JBehave's annotations anstatt TestNG gebrauchen, wie Sie Geschichten und Szenarien laufen werden, statt Klassen und Suiten. Wie Sie sehen können, wird eine Geschichte (von mehreren Szenarien) als ein Test behandelt, was sinnvoll ist, wenn Sie über Dinge wie Hintergrund nachdenken.

  2. Da TestNG eine Geschichte als einen Test behandelt, kann ich keinen Grund sehen, warum es nicht aufgenommen wurde. Versuche es.

  3. Für Testberichte, siehe JBehave's documentation erneut. Es ermöglicht die Injektion von benutzerdefinierten Reportern.

Having said, dass alle, entfernt von TDD nicht migrieren. Das Ideal ist, ein paar High-Level-Szenarien zu haben, die das ganze System durchqueren, mehr Integrationstests als das und eine absolute Tonne Unit-Tests.

Wenn Sie zum Beispiel ein zu validierendes Formular haben, fügen Sie einfach ein paar Beispiele hinzu, die zeigen, wie der Benutzer zum Ausfüllen des Formulars geführt wird. Überprüfen Sie den Rest der Validierung, indem Sie Komponententests für die Validierungsklasse erstellen. (Sie können immer noch denken, sie als Beispiele und stellen das Vorliegende/Wenn/Dann in den Kommentaren, aber JBehave verwendet, ist viel des Guten für Tests mit einem Fachpublikum.)

die testing pyramid für weitere Informationen und die testing ice-cream cone zu vermeiden.

+0

@ Lunivore.- Danke für Ihre Eingaben. Lass mich die Links überprüfen. – SKumar

+0

Können Sie mir eine Beispielklassendatei geben, mit der die jbehave-Testschritte ausgeführt werden? Ich habe gerade die Frage mit dem, was ich bisher versucht habe, aktualisiert. Bitte helfen Sie mir, dies zu erreichen. – SKumar

+0

Kannst du mir bitte dabei helfen? – SKumar