2016-02-16 28 views
5

Mam zadanie do wykonania, którego nie mogę wykonać, ponieważ nie mam w pełni gotowego zestawu narzędzi. Mam używać JBehave razem z Selenium Web Driver, aby móc dodać pewną książkę do listy życzeń na koncie Amazon. Mam pewną historię i wykorzystałem wspomniane wcześniej narzędzia do "celów edukacyjnych". Rozumiem, że JBehave to framework dla BDD. Mam więc jakąś historię, którą chcę przetestować. Jednak to, co wprawia mnie w zakłopotanie, to konfiguracja i część "definicja kroku", której tak naprawdę nie dostaję. Mój problem polega na tym, że tak naprawdę nie rozumiem, jak sprawić, by wszystkie te części współpracowały ze sobą. Gdzie znajduje się Selenium WebDriver w równaniu? Zwróć uwagę, że użyłem Selenium z Javą i to było proste.Jak działa JBehave z Javą?

Chciałbym podać przykład historii w formacie korniszonu i byłbym wdzięczny za wszelkie spostrzeżenia na ten temat, może wyjaśnienie, jak wszystkie elementy pasują do siebie.

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

Proszę spojrzeć na pytanie łącza, można uzyskać pewne pojęcia jak skonfigurować java jbehave selen, [link] (http: // stackoverflow .pl/questions/20733703/very-simple-step-by-step-jbehave-setup-tutorial) – SacTan

+0

Czy mógłbyś bardziej wyjaśnić, co jest celem tego "zadania uczenia się"? Czy chcesz wdrożyć tę konkretną pojedynczą historię za pomocą java + webdriver + jbehave, aby uruchomić ją na swoim komputerze i sprawdzić wyniki?A raczej czy chcesz wiedzieć, czy ten zestaw narzędzi może być przydatny na dłuższą metę, do testowania setek historii i jak zorganizować projekt i całą strukturę testową za pomocą tych narzędzi, aby łatwo i wydajnie wdrożyć i uruchomić wiele testy, wyświetlać ich wyniki i analizować przyczynę błędów? – krokodilko

+0

Wow jest podmuch z przeszłości. JBehave jest starodawny, ostatnie wydanie było w 2006 roku. Osobiście szukałem czegoś bardziej aktualnego i dobrze wspieranego. Będziesz mieć problemy, jeśli coś pójdzie nie tak, ponieważ nikt tak naprawdę nie używa tego. – Ardesco

Odpowiedz

2

Teraz masz Story trzeba swoje Kroki. Kroki to kod Java, który zostanie wykonany przez historię. Każda linia w twojej historii zostanie zmapowana do kroku Java. Zobacz dokumentację na stronie Candidate Steps.

Oto prosta odpowiedź na pytanie, jak może wyglądać Twoja historia i kroki. Powinien jednak przynajmniej dać ci wyobrażenie o tym, w jaki sposób powiązane są historie i kroki.

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 

Kroki

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(); 
    } 
} 

Następnie trzeba będzie zawodnik, który faktycznie znajdzie i uruchamia historie. Zobacz dokumentację na stronie Running Stories. Poniżej znajduje się bardzo prosty biegacz, który działałby jako test JUnit.

runner

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"); 
    } 
} 

To drugie miejsce będzie wówczas wykonane jako test JUnit. Możesz skonfigurować IDE, aby go uruchomić, lub użyć Mavena lub Gradle (w zależności od konfiguracji).

mvn test 

znalazłem, że strony poniżej stanowią doskonałą przegląd całej instalacji. A przykłady z repozytorium JBhave również są użyteczne.

+0

Dzięki, ale to jest to samo dokładne wyjaśnienie, które widzę wszędzie. Mój problem polega na tym, że po utworzeniu tych wszystkich, jak faktycznie je uruchomić? Nie mogę się zorientować, jak właściwie uruchomić scenariusz. Jak to, co robię porównując moje wyniki? Nie mogę uzyskać pełnego obrazu tutaj. Zauważ, że przeczytałem działające historie na JBehave, ale pomijają zbyt wiele wyjaśnień, które są niezbędne do uzyskania pełnego obrazu. – Ralph

+0

OK, szukasz przykładów lub prostego zapisu, który łączy je wszystkie razem. Wrzucę coś, co może w tym pomóc. –

+0

Zobacz moją zaktualizowaną odpowiedź. Mam nadzieję, że będzie to bardziej pomocne dla Ciebie. –