2016-12-08 9 views
1

私はCucumberJSとProtractorJSを使っていくつかのe2eテストを行っています。しかし、私のコードは混乱になっています。同じコードはWorldオブジェクト、BeforeフックとAfterフックファイル、そしてステップ定義ファイルの別々の場所にあります。異なるファイルは、明確に定義されていないようです。私は、Worldオブジェクトに再利用可能な部分を配置しています。 (たとえば、Worldオブジェクトにログインを入れますが、ログインする前フックもあります)。世界とステップファイルもかなり大きくなっています。私が遭遇するもう一つの難点は、サイト上のいくつかの更新が非同期的に起こることです。このため、テストの一般的な流れやデバッグが難しいと判断するのが難しくなります。私の質問:キュウリを使ったe2eテストのコードのいくつかの可能なアーキテクチャは何ですか?E2Eテストコードのアーキテクチャ

更新:

プロジェクトが拡大されました。私は複数のサイトを介してフローをテストする必要があります。 2つのフロントエンドと1つのバックエンドサイト。ユーザーは両方のフロントエンドサイトのいずれかでさまざまなタイプの情報を送信できます。これは、サイト管理者がバックエンドでチェックする必要があります。そして、フロントエンドサイトのいずれかに表示されます。また、ユーザーが情報を送信したときや、管理者が情報を受け入れる/編集したときに送信されるメールをチェックする必要があります。私には、Webメールアカウントを使用し、これをチェックするためにProtractorJSを使用するのが最も簡単だと思われますか?さらに、テストは一定の時間枠内になければならないという制約があります。したがって、すべてのテストのバックグラウンド条件(シナリオに応じて)にログイン/ログアウトすることはなく、シナリオごとにページをリフレッシュしないようにします(2つのフロントエンドで同じログインを使用するのは難しい)。

私はこれをどのように行うべきであるかの例/パターンはありますか?

私はこれをどのようにしてページオブジェクトパターンを使用し始めましたか。しかし、ログインのようないくつかのロジックはサイトごとに異なるので、私はそれらにいくつかのロジックを別々のオブジェクトに入れます。また、ページオブジェクトの隣にキャッシュページオブジェクトがあります。最初のメンバーは最後まで委任しますが、URLまたはログイン状態が変更された場合のみです。私はあなたが非常によく、Martin Fowler氏によって説明さページオブジェクトパターンを読むことをお勧めします

答えて

1

ここhttp://martinfowler.com/bliki/PageObject.html また、情報の多くはこのパターンについてウェブ検索見つけることができます。

多くの場所で使用する一般的な機能については、それらを含むファイルや共通の責任を持つ機能を公開する多くのファイルを作成できます。

こうすれば、アーキテクチャを一貫性を保ち、SRPを正しく使用することができます。

+0

プロジェクトの拡大された範囲にどのように対処しますか?ありがとう。 – raichu

+1

他のプロジェクトと同様に管理しています。懸念の分離、反復とSRPのすべての指導を避ける。 私はあなたのテストの書き方を変える脚本のパターンについて学びました。それは実際にそれらをカプセル化します。だからあなたはそれを確認することができるかもしれません。あなたが何かを使うことができるかどうかを見てください。 最終的に私は1つの正しいアプローチがあるとは思わない、ちょうどガイドラインなので、コントロール外にならないよ –

+0

ありがとう。私は一つのアプローチはないと理解していますが、あなたが何かを初めて知っていれば、パターンの手段によっていくらかの指針が役立ちます。私は脚本のパターンを調べます。 – raichu

関連する問題