1

同じクラスおよび異なるクラスにある複数のテストでページオブジェクトの同じインスタンスを使用する方法のさまざまな方法を知りたいです。

例: ホームページをテストしているアプリケーション、ホームページには、従業員の追加、従業員の変更、従業員の詳細、および会社の詳細へのリンクがあります..ページ

私の実装では、 Page クラス - ページで実行される一般的な機能が含まれています

HomePage クラス - HomePage とやり取りする機能があります

AddEmployeePage クラス - AddEmployeePage とやり取りする機能があります

ModifyEmployeePage クラス - ModifyEmployeePage とやり取りする機能があります

EmployeeDetailsPage クラス - EmployeeDetailsPage とやり取りする機能があります。

CompanyDetailsPage クラス - CompanyDetailsPage と対話する機能があります。

以下のすべてのテスト クラスは Page クラスを拡張します。

HomePageTest クラス - ホームページのすべてのテストがあります

AddEmployeeTest クラス - Add EmployeePage のすべてのテストがあります

ModifyEmployeeTest クラス - Modify EmployeePage のすべてのテストがあります。

EmployeeDetailsTest クラス - 従業員詳細ページのすべてのテストがあります

CompanyDetailsTest クラス - 会社の詳細ページのすべてのテストがあります。

HomePage およびその他のページに関連するすべてのテストでは、初めて作成した HomePage オブジェクトを使用したいと考えています。

これを実現するために、現在、すべてのページ オブジェクトを Page クラスで静的として宣言し、テストで同じオブジェクトを参照しています。

これは正しい方法ですか?複数のブラウザーでテストを実行すると、何か影響がありますか? またはテストを並行して実行しますか?私にお知らせください

前もって感謝します。

4

2 に答える 2

0

あなたのアプローチは良さそうです。共通のビジネスログイン/機能を単一のクラスに配置することをお勧めします。たとえば、AddEmployeePage を使用すると、従業員の追加、編集、削除などの機能を使用できます。ビジネスログインの小さな変更やページソースの変更/新しいフィールドの追加などのすべてのテストクラス。ユーザーの追加などの単一の機能を変更することにより、すべてのテストクラスは、ユーザーを追加するために更新された同じログインを持ちます。クラスを拡張する代わりに、共通クラスで静的メンバー関数と変数を使用することをお勧めします。処理と更新がより簡単になり、クラス名だけで他のテストクラスのどこでも静的メンバーを呼び出すことができます。プロジェクトに同様のログインを実装しましたが、IE などのすべてのブラウザでうまく機能します。FFとクローム。並列テストが考慮される限り、並行して実行されている他のテストクラスに影響を与える可能性がある2つのテストクラスを並行して実行しないようにしてください。

于 2014-01-28T05:22:23.467 に答える