Seleniumページオブジェクトパターンを使用して、各ページのモデルを構築します。ただし、1 つのビジネス機能を実装するには、数ページが必要になります。たとえば、1 人のユーザーを作成すると、以下のように AgreementPage と CreateUserPage が含まれます。
agreementPage = AgreementPage()
creatUserPage = agreementPae.accept()
createUserPage.typeEmail("your email address")
createUserPage.submit()
私たちのテストでは、多くのテスト ケースで前提条件として 1 人のユーザーを作成する必要があります。これらのコードを再利用するために、1 つの新しいサービス層を作成しました。コードを UserService.CreateUser() に移動します。次に、テストスクリプトは次のようになります
def test_create_user():
userService.CreateUser("email address")
#do assertion
def test_edit_user():
authenticationService.login("user name", "password")
userService.CreateUser("email addrss")
#do editing created user
def test_delete_user():
authenticationService.login("user name", "password")
userService.CreateUser("email addrss")
#do deleting created user
ほとんどの機能には 2 ページ以上が含まれるため、ページ オブジェクトはサービス層に入ります。テスト スクリプト層では、サービスをテストしているように見えますが、サービス名はフレンドリーではなく、ドメイン言語と話すのが好きではないと思います。
これは、自動化テストを行うための非常に一般的なアプローチだと思いますよね? どのようにサービス層に名前を付けますか、またはページオブジェクトの再利用をどのように処理しますか?