2017-01-18 3 views

答えて

1

あなたの質問には答えが1つしかないように聞こえますが、実際には正しくコーディングするとこれらをまとめてマージすることができます。

ページオブジェクトモデル

これはあなたのコードの残りの部分からページの要素の分離に適しています。正しく実装されている場合は、POMの1行を変更するだけで、そのページを使用するすべてのシナリオでページの変更を修正できます。

nextButton.click(); 
fullName.sendKeys("John Doe"); 

脚本パターン

これは別のページ、別のワークフローで発生したアクションの分離のために良いです。

james.attemptsTo(
    goToTheNextPage(), 
    fillOutHisDetails() 
); 

旅が若干変更されたワークフローを持っている場合は、アイデアは、あなたは、単に脚本パターンを並べ替え、またはもはや必要なアクションを削除することができるということです。上記の例で 事業は、登録フォームが単一のページの代わりの倍数でなければならないことを決定した場合、それはこの単一の行を削除する方が理にかなって:

goToTheNextPage(), 

の代わりに、そのI 2を削除します入れているだろう:

driver.findElement({css:"#next"}).click(); 
driver.findElement({css:"#registrationDetails"}); 

CucumberJS + WebdriverIO

これは純粋なビジネス言語でのシナリオの情報を表現する良いです。彼らに

をマージ

Scenario: I am filling out the registration form 
    Given I am a new user 
    And I want to register for an account 
    When I fill out the registration form 
    Then I should be able to log in 

あなたは本当に人間が読めるコードが必要な場合は、これらのすべての3をマージすることができます。

ビジネスレベルの言語で機能ファイルを使用しています。 脚本のパターンを念頭に置いたステップ定義があります。 ページオブジェクトモデルで記述された脚本パターンのステップがあります。

これは多くのレイヤーのように見えるかもしれませんが、ビジネスがシナリオを理解できるようになることを意味します。コードを振り返るテスターと開発者は特定の旅程のワークフローを理解し、デバッグ時のコードは、テスターが1行のコードを変更するだけで、複数の旅に渡って要素の値を変更することができます。

関連する問題