2016-02-16 23 views
5

Tamamen iş göremediğim için iş için bir görevim var çünkü alet takımını tam elde edemiyorum. Ben bir Amazon hesabında bir istek listesine belirli bir kitap eklemek için Selenyum Web Sürücüsü ile birlikte JBehave kullanması gerekiyordu. Verilen bir hikayem var ve "öğrenme amaçlı" olarak kullanılmak üzere daha önce bahsedilen araçları kullanmam gerekiyordu. JBehave'in BDD için bir çerçeve olduğunu anlıyorum. Yani, test etmek istediğim bir çeşit hikayem var. Ancak, beni şaşırtan şey, gerçekten anlamadığım yapılandırma ve "adım tanımı" kısmı. Benim problemim, bütün bu parçaların birlikte nasıl çalışacağını anlamıyorum. Selenium WebDriver denklemde nereye sığar? Selenium'u Java ile kullandığımı ve bu bir esinti olduğunu unutmayın.JBehave Java ile nasıl çalışır?

Size gherkin formatında bir hikaye hakkında bir örnek vermek istiyorum ve bu konuyla ilgili her türlü kavrayışı takdir ediyorum, belki de tüm parçaların birbirine nasıl uyduğuna dair bir açıklama.

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

bağlantı soruya bir göz Lütfen [link] (http: // stackoverflow .com/questions/20733703/çok-basit-adım-adım-jbehave-kurulum-öğretici) – SacTan

+0

Bu "puroses öğrenme görevi" nin amacı nedir daha açıklayabilir misiniz? Bilgisayarınızda çalıştırmak ve sonuçları incelemek için java + webdriver + jbehave kullanarak bu tek somut tek hikayeyi uygulamaktan başka bir şey istemez misiniz?Ya da bu araçların uzun vadede faydalı olup olmadığını, yüzlerce hikayeyi test edip etmediğini ve projenin ve tüm test çerçevesinin bu araçları kullanarak nasıl kolay ve verimli bir şekilde uygulayacağını ve çalıştırılacağını bilmek isteyebilirsiniz. testler, sonuçlarını gösterir ve hataların nedenini inceler? – krokodilko

+0

Vay, geçmişten bir patlama oldu. JBehave eskidir, son sürüm 2006 yılında olmuştur. Şahsen biraz daha güncel ve iyi desteklenmiş bir şeyler ararım. Bir şey ters giderse sorunları olacak çünkü kimse artık onu kullanmıyor. – Ardesco

cevap

2

Artık Story olduğunu size Adımlar gerekir. Adımlar, hikaye tarafından yürütülecek olan Java kodudur. Hikayenizdeki her satır bir Java Adımına eşlenir. Candidate Steps'daki belgelere bakın.

Hikayeniz ve adımlarınızın neye benzeyebileceği konusunda bir gerçekten basit bir bıçak. Ama en azından hikayelerin ve adımların nasıl birbirine bağlandığı hakkında bir fikir vermelisiniz.

Öyküsü

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 

Adımlar

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

Sonraki aslında bulur ve hikayeleri çalışan bir koşucu gerekir. Running Stories'daki belgelere bakın. Aşağıda bir JUnit testi olarak çalışacak çok basit bir koşucu var.

koşucu

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

Bu kanal daha sonra JUnit olarak yürütülür olacaktır. IDE'nizi çalıştırmak için yapılandırabilir veya Maven veya Gradle'ı (kurulumunuza bağlı olarak) kullanabilirsiniz.

mvn test 

Ben sayfaları aşağıda tüm kurulum büyük bir bakış sağladığını tespit etmiştir. Ve JBhave deposundan örnekler de yararlıdır. nasıl jbehave selenyum java yapılandırmak için bazı fikir edinebiliriz

+0

Teşekkürler, ama bu her yerde gördüğüm aynı açıklamadır. Sorunum, hepsini oluşturduktan sonra, onları nasıl çalıştırıyorum? Aslında böyle bir senaryoyu nasıl çalıştırılacağını anlayamıyorum. Sonuçlarımı karşılaştırdığım gibi ne yapıyorum? Tam resmini burada göremiyorum. JBehave'deki Koşu hikayelerini okuduğumu, ancak tam resmini almak için çok fazla açıklama atladıklarını unutmayın. – Ralph

+0

Tamam, bazı örnekleri ya da hepsini birbirine bağlayan basit bir yazmayı arıyorsunuz. Bununla yardımcı olabilecek bir şey yayınlayacağım. –

+0

Güncellenmiş yanıtımı görün. Umarım bu sizin için daha yararlı olacaktır. –

İlgili konular