まず、ページオブジェクトパターンを使用してページオブジェクトを別のディレクトリに保存してください。ディレクトリpo
を呼び出すことをお勧めします。ここで
は、我々が現在持っているあなたのためのサンプル、プロジェクト構造である:
$ cd e2e
$ tree -L 1
.
├── config
├── db
├── helpers
├── mocks
├── po
└── specs
config
は、我々のprotractor
のconfigsを維持する特殊なディレクトリです - 複数のconfigsがあるかもしれません - 例えば、ローカルでテストする場合のために例えば、のテスト。
helpers
は、基本的に私たちの "libs"/"utils"ディレクトリです。私たちはカスタムジャスミンマッチャー、ヘルパー機能を持つ追加の "ヘルパー"モジュールを保有しています。また、localStorage
とsessionStorage
モジュールは、window.localStorage
とwindow.sessionStorage
というオブジェクトに便利なラッパーです。
mocks
は、私たちが保管するディレクトリです。protractor-http-mock
mocksです。
po
は、Page Objectsが定義されているディレクトリです。各ページオブジェクトは別々のファイルに格納されます。
specs
はすべてのスペックが存在する場所で、論理的にはサブディレクトリに編成されています。
helpers
ライブラリのいくつかは、たとえばmade globally available via global
次のとおりです。また
onPrepare: function() {
global.helpers = require("../helpers/helpers.js");
// ...
},
、ヘルパーとPOのインポートをより便利に、ツリー内のディレクトリを横断回避し、より良いnestednessを処理するためにします、我々はrequirePO
と@Michael Radionovによって提案requireHelper
ヘルパー関数を使用してに切り替えました、以下を参照してください
また、@finspinが提案したアイデアは、各ページオブジェクトからノードパッケージを作成するのが大好きです。
Page Objectの例はありますか? –
@GianlucaGhettiniええ、私たちは基本的にここに示唆されているものに従います:https://github.com/angular/protractor/blob/master/docs/page-objects.md。 – alecxe
単体テストのためにページオブジェクトのようなものがあるのは意味がありますか? – ganqqwerty