2016-02-16 9 views
5

ツールセットを手にしていないので、私は完了できないような作業をしています。私はJBehaveをSelenium Web Driverと一緒に使ってamazonアカウントのwishlistに特定の本を追加することになっています。私は与えられた物語を持っており、私は前述のツールを "学習目的"のために使用することになっています。 JBehaveはBDDのフレームワークであると私は理解しています。だから、テストしたいと思うような物語があります。しかし、私が混乱しているのは、実際には得られない構成と「ステップ定義」の部分です。私の問題は、一緒に働くすべての部品を手に入れる方法を本当に理解していないことです。 Selenium WebDriverはどこに収まるのですか?私はJavaでSeleniumを使用しましたが、それは簡単でした。JBehaveはJavaでどのように動作しますか?

小説形式の小説の例をお伝えしたいと思いますが、このテーマについての洞察があれば分かります。

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

リンクの質問を見てください、[リンク](のhttp:// stackoverflowの.com/questions/20733703/very-simple-step-by-step-jbehave-setup-tutorial) – SacTan

+0

この「purosesを学ぶための課題」の目的は何ですか?あなたのコンピュータでそれを実行し、結果を調べるために、java + webdriver + jbehaveを使用して、この1つの具体的な単一のストーリーを実装する以外に何もしたくないですか?か、あなたがこのツールセットは、話の何百ものテスト、そしてどのようにプロジェクトを簡単かつ効率的に実装するとの多くを実行するために、これらのツールを使用して全体のテストフレームワークを整理するために、長期的に有用であることができるかどうかを知りたいのですかテスト結果を表示し、バグの原因を調べますか? – krokodilko

+0

うわー、過去からの爆発があります。 JBehaveは古代です、最後のリリースは2006年です。私は個人的には、少しだけ最新のものを探していて、よくサポートされています。誰も本当にそれを使用していないので、何かがうまくいかないと問題が生じるでしょう。 、私は中央Mavenの確認時に、間違った日付を読むように見える、http://jbehave.org/reference/stable/release-notes.html – Ardesco

答えて

2

は今、あなたはあなたのストーリーを持っていることを、あなたのステップを必要としています。ステップは、ストーリーによって実行されるJavaコードです。あなたの物語の各行はJavaのステップにマッピングされます。 Candidate Stepsのドキュメントを参照してください。

ここでは、のストーリーとステップがどのように見えるかを簡単に示しています。しかし、それは少なくとも、物語とステップがどのように結びついているかのアイデアを与えるべきです。

ストーリー

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 

ステップ

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

次はあなたが実際に見つけて話を走るランナーが必要になります。 Running Storiesのドキュメントを参照してください。以下は、JUnitテストとして実行する非常に単純なランナーです。

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

ランナーこのランナーは、次に、JUnitテストとして実行されることになります。 IDEを実行するように設定するか、MavenまたはGradleを使用することができます(設定に応じて)。

mvn test 

私は、以下のページにセットアップ全体の概要を示していることがわかりました。 JBHaveリポジトリの例も同様に便利です。あなたはどのようにjbehaveセレンのJavaを設定するためにいくつかのアイデアを得る可能性があります

+0

ありがとうございますが、これは私がどこにでも見ているのと同じ正確な説明です。私の問題は、それらをすべて作成した後、実際にどのように実行するのですか?シナリオを実際にどのように実行するかを理解できないようです。私の結果と何が似ているのですか?私はここで完全な画像を得ることができない。私はJBehave上で実行されている物語を読んでいることに注意してください、彼らは、あなたには、いくつかの例またはすべて一緒にそれを結び付け、単純な書き込みまでを探している全体像 – Ralph

+0

[OK]を得ることが不可欠であり、あまりにも多くの説明を省略します。私はそれを助けるかもしれない何かを投稿します。 –

+0

私の更新答えを見てください。うまくいけば、これはあなたにもっと役立つでしょう。 –

関連する問題