2

エンティティの使用法を組み込むために E2E テストを最適化しようとしています。

私たちのテストは基本的に、ウェブページのフォームにデータを入力しています。私たちのテストでは、PageObject が要素を変数に格納する PageObject メソッドを使用しています。また、PO ファイルに格納されている要素との相互作用を含む変数もあります。

私たちのspecファイルは、POファイルを呼び出し、次のように各要素にデータを入力するものです(これは私たちが行っていることの単なる例です):

PO ファイル:

this.firstNameField = by.model('firstName');
this.lastNameField = by.model('lastName');

this.setFirstNameField = function(firstname) {
    element(this.firstNameField).sendKeys(firstname);
};

this.setLastNameField = function(lastname) {
    element(this.lastNameField).sendKeys(lastname);
};

仕様ファイル:

pageObject.setFirstNameField('TestName');
pageObject.setLastNameField('TestLastName');

私たちの仕様ファイルには、このコードが約 100 行あり、私が知る限り、あまり効率的ではありません。このスタイルを削除して、代わりにエンティティを使用したいのですが、これをどのように行うか正確にはわかりません。したがって、なぜここに来るのですか。

私の友人は、私がこれにどう取り組むべきかについてヒントをくれました。

仕様ファイル:

var nameEntity = {
      firstName: 'TestName',
      lastName: 'TestLastName'
    };
pageObject.PopulateUIWithNameEntity(nameEntity);

これで、nameEntity を pageObejct ファイルに格納するように切り替えることができることがわかりましたが、PopulateUIWIthNameEntity をどのように作成する必要があるか正確にはわかりません。

私は次のことを試しましたが、nameEntityから要素自体に値を入力するようには見えません。

pageObject ファイル:

this.PopulateUIWithNameEntity = function(nameEntity) {
    element(this.setFirstNameField).sendKeys(nameEntity);
  };
4

1 に答える 1

1

あなたは近づいていました...ちょっとしたリファクタリングが必要でした。

テスト データをオブジェクト (ハッシュ) に追加することは、間違いなく良い考えです。次に、メソッドで要素を抽出するだけです。また、個々のアクションごとに個別のメソッドも既に用意されているため、それらを使用する必要がありました。

仕様...

var nameEntity = {
  firstName: 'TestName',
  lastName: 'TestLastName'
};
pageObject.populateUIWithNameEntity(nameEntity);

ページ オブジェクト...

this.populateUIWithNameEntity = function(nameEntity) {
  this.setFirstNameField(nameEntity.firstName);
  this.setLastNameField(nameEntity.lastName);
};
于 2015-04-10T14:50:14.173 に答える