2

(Selenium2) Webdriver に基づいて API を開発するという苦痛を経験していますが、これが私のジレンマです。

私は基本的に4つのパッケージを持っています:

com.example.qa.pageobject
com.exmaple.qa.setup
com.example.qa.test
com.example.qa.utils

にはcom.example.qa.test、他のパッケージのクラスを「使用」するテスト クラスがあります。

私は次のテスト方法で終わっています。

@Test
    public void testScenario16786() {
        Login login = new Login();
        login.setUp();
        AddSingleDomain asd = new AddSingleDomain();
        asd.addSingleDomain();
        AddARecord ar = new AddARecord();
        ar.AddARecordTest();

    }

さて、これは Java での開発の非常に悪い例のように思えますが、これはほとんど手続き型に見えます。それを行う他の方法はありますか?他のユーザーが使用する API を設計する際に知っておく必要があるルールはありますか? これはやや古典的な問題であり、以前に解決されていると確信しています。これを解決する多くの方法を知りたいだけです。

解決策の 1 つは、Factory パターンを使用することであり、キーに基づいて特定のクラスがインスタンス化されます。これは良い方法ですが、よりエレガントな方法はありますか?

4

2 に答える 2

1

あなたのテストクラスは必然的に手続き型です - 反復可能な一連のステップで、それで問題ありません。一般的に推奨されるアプローチは Page Object パターンを使用することであり、selenium には PageFactory オブジェクトも用意されています (ページの最後を参照)

于 2012-09-26T19:56:03.717 に答える
0

JoshuaBlochによる「優れたAPIを設計する方法とその重要性」というプレゼンテーションが役立つ場合があります。

于 2012-09-26T18:27:57.197 に答える