GEBの使用私はページオブジェクトパターンを使用して、さまざまなページに関する情報を静的にカプセル化していました。
次に、GEBコードをリファクタリングして別のクラスから使用できるようにし、メソッド呼び出しを使用して一般的なコマンドをカプセル化できるようにしました。
たとえば、適切なGEBコードを呼び出してテストしているWebサイトにログインするメソッドlogin()があります。次に、TestHelperクラスのメソッド呼び出しを使用して他の一般的な関数を作成します。
これらの一般的な機能を、それらが作用するページに移動したかったのです。たとえば、検索ページには検索方法があり、ログインページにはログイン方法があります。このようにして、複数のGEBプロジェクトで使用するためのすべての共通機能を備えたページのライブラリを構築できます。これを行うには、各ページにgeb.Browserのハンドルが必要です。したがって、テストセットアップで各ページをインスタンス化する必要があります。そうすることで、標準のページオブジェクトパターンを使用できなくなります。
to ReviewQueuePage
assert at(ReviewQueuePage)
上記のコードは、オブジェクトに静的な方法でアクセスできなくなったため、nullポインターをスローします。つまり、コードを次のように変更する必要がありました。
go ReviewQueuePage.url
これにより、クラスをページとして使用するすべての機能が削除されます。
ページの動作が変わらないように、各ページのデータをカプセル化するためのソリューションはありますか?