2016-02-16 15 views
5

Ho un compito per il lavoro che non riesco a completare perché non ho il set completo a portata di mano. Dovrei usare JBehave insieme a Selenium Web Driver per poter aggiungere un certo libro a una wishlist su un account amazon. Ho una determinata storia e dovrei usare gli strumenti menzionati in precedenza per "scopi di apprendimento". Capisco che JBehave sia un framework per BDD. Quindi, ho una sorta di storia che voglio testare. Tuttavia, ciò che mi confonde è la parte relativa alla configurazione e alla "definizione del passo" che non riesco a ottenere. Il mio problema è che non capisco davvero come far funzionare tutte quelle parti. Dove si inserisce Selenium WebDriver nell'equazione? Si noti che ho usato Selenium con Java e che è stato un gioco da ragazzi.Come funziona JBehave con Java?

Voglio darvi un esempio di una storia in formato cetriolino e vorrei apprezzare qualsiasi intuizione su questo argomento, forse un chiarimento su come tutti i pezzi combaciano.

Given user <username> with password <password> has a valid amazon.com account 
And has a wish list 
And wants to purchase book <title> at a later date 
When a request to place the book in the wish list is made 
Then the book is placed in the wish list 
And the book <title> appears in the wish list when <username> logs in at a later date. 
+0

Si prega di dare un'occhiata al domanda di collegamento, si potrebbe ottenere qualche idea di come configurare il java jbehave selenio, [link] (http: // StackOverflow .com/questions/20733703/very-simple-step-by-step-jbehave-setup-tutorial) – SacTan

+0

Potresti spiegare di più qual è l'obiettivo di questo "compito per imparare i puri"? Non vuoi altro che implementare questa singola storia concreta usando java + webdriver + jbehave, per eseguirlo sul tuo computer ed esaminare i risultati?O meglio vuoi sapere se questo insieme di strumenti può essere utile a lungo termine, per testare centinaia di storie, e come organizzare il progetto e l'intero framework di test usando questi strumenti per implementare ed eseguire in modo semplice ed efficiente un sacco di prova, mostra i loro risultati ed esamina una causa di bug? – krokodilko

+0

Wow, c'è un tuffo nel passato. JBehave è antico, l'ultima uscita è stata nel 2006. Personalmente avrei cercato qualcosa di un po 'più aggiornato e ben supportato. Avrai problemi se qualcosa va storto perché nessuno lo usa più. – Ardesco

risposta

2

Ora che avete la vostra Story avete bisogno della vostra Passi. I passaggi sono il codice Java che verrà eseguito dalla storia. Ogni riga della tua storia viene mappata su un passaggio Java. Vedere la documentazione su Candidate Steps.

Ecco uno davvero semplice accusa a come potrebbe sembrare la tua storia e passaggi. Ma dovrebbe almeno darti un'idea di come le storie e le fasi si uniscono.

Story

Given user username with password passcode is on product page url 
When the user clicks add to wish list 
Then the wish list page is displayed 
And the product title appears on the wish list 

Passi

public class WishlistSteps { 
    WebDriver driver = null; 

    @BeforeScenario 
    public void scenarioSetup() { 
    driver = new FirefoxDriver; 
    } 

    @Given("user $username with password $passcode is on product page $url") 
    public void loadProduct(String username, String passcode, String url) { 
    doUserLogin(driver, username, passcode); // defined elsewhere 
    driver.get(url); 
    } 

    @When("the user clicks add to wishlist") 
    public void addToWishlist() { 
    driver.findElement(By.class("addToWishlist")).click(); 
    } 

    @Then("the wish list page is displayed") 
    public void isWishlistPage() { 
    assertTrue("Wishlist page", driver.getCurrentUrl().matches(".*/gp/registry/wishlist.*")); 
    } 

    @Then("the product $title appears on the wish list") 
    public void checkProduct(String title) { 
    // check product entries 
    // assert if product not found 
    } 

    @AfterScenario 
    public void afterScenario() { 
    driver.quit(); 
    } 
} 

Successivamente sarà necessario un corridore che in realtà trova e gestisce le storie. Vedere la documentazione su Running Stories. Di seguito è riportato un corridore molto semplice che verrebbe eseguito come test JUnit.

corridore

public class JBehaveRunner extends JUnitStories { 
    public JBehaveRunner() { 
    super(); 
    } 

    @Override 
    public injectableStepsFactory stepsFactory() { 
    return new InstanceStepsFactory(configuration(), 
     new WishlistSteps()); 
    } 

    @Override 
    protected List<String> storyPaths() { 
    return Arrays.asList("stories/Wishlist.story"); 
    } 
} 

Questo corridore verrebbero quindi eseguiti come test JUnit. Puoi configurare il tuo IDE per eseguirlo, o usare Maven o Gradle (a seconda della configurazione).

mvn test 

Ho trovato che le pagine sottostanti offrono un'ottima panoramica dell'intero setup. E gli esempi dal repository JBhave sono anche utili.

+0

Grazie, ma questa è la stessa esatta spiegazione che vedo dappertutto. Il mio problema è dopo aver creato tutti quelli, come li eseguo effettivamente? Non riesco a capire come eseguire realmente uno scenario in quanto tale. Come sto facendo il confronto dei miei risultati? Non riesco a ottenere l'immagine completa qui. Nota che ho letto le storie di corsa su JBehave, ma saltano troppe spiegazioni che sono fondamentali per ottenere l'immagine completa – Ralph

+0

Ok, stai cercando alcuni esempi o una semplice scrittura che leghi tutto insieme. Pubblicherò qualcosa che potrebbe aiutarti. –

+0

Vedere la mia risposta aggiornata. Speriamo che questo sia più utile per te. –