使用实体的 E2E 测试
E2E test using Entities
我正在尝试优化我的 E2E 测试以合并实体的使用。
我们的测试基本上是将数据填充到网页上的表单中。我们的测试使用 PageObject 方法,其中我们的 PageObject 将我们的元素存储在变量中,我们还有包含与存储在 PO 文件中的元素的交互的变量。
我们的规范文件调用 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 行代码,据我所知这不是很有效。我想删除这种样式并改用 Entity 的样式,但是我不确定我将如何处理这个,因此我来这里的原因。
我的一个朋友向我提示了我将如何处理这件事,这是他提供给我的:
规格文件:
var nameEntity = {
firstName: 'TestName',
lastName: 'TestLastName'
};
pageObject.PopulateUIWithNameEntity(nameEntity);
现在我知道我可以将 nameEntity 切换为存储在 pageObejct 文件中,但是我不确定应该如何创建 PopulateUIWIthNameEntity。
我尝试了以下方法,但似乎无法将 nameEntity 中的值输入到元素本身。
页面对象文件:
this.PopulateUIWithNameEntity = function(nameEntity) {
element(this.setFirstNameField).sendKeys(nameEntity);
};
你很接近...只是需要一点点重构。
将您的测试数据添加到对象(哈希)绝对是个好主意。然后你只需要在你的方法中从中提取元素。您还已经为每个单独的操作提供了单独的方法……所以您只需要使用它们。
规格...
var nameEntity = {
firstName: 'TestName',
lastName: 'TestLastName'
};
pageObject.populateUIWithNameEntity(nameEntity);
页面对象...
this.populateUIWithNameEntity = function(nameEntity) {
this.setFirstNameField(nameEntity.firstName);
this.setLastNameField(nameEntity.lastName);
};
我正在尝试优化我的 E2E 测试以合并实体的使用。
我们的测试基本上是将数据填充到网页上的表单中。我们的测试使用 PageObject 方法,其中我们的 PageObject 将我们的元素存储在变量中,我们还有包含与存储在 PO 文件中的元素的交互的变量。
我们的规范文件调用 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 行代码,据我所知这不是很有效。我想删除这种样式并改用 Entity 的样式,但是我不确定我将如何处理这个,因此我来这里的原因。
我的一个朋友向我提示了我将如何处理这件事,这是他提供给我的:
规格文件:
var nameEntity = {
firstName: 'TestName',
lastName: 'TestLastName'
};
pageObject.PopulateUIWithNameEntity(nameEntity);
现在我知道我可以将 nameEntity 切换为存储在 pageObejct 文件中,但是我不确定应该如何创建 PopulateUIWIthNameEntity。
我尝试了以下方法,但似乎无法将 nameEntity 中的值输入到元素本身。
页面对象文件:
this.PopulateUIWithNameEntity = function(nameEntity) {
element(this.setFirstNameField).sendKeys(nameEntity);
};
你很接近...只是需要一点点重构。
将您的测试数据添加到对象(哈希)绝对是个好主意。然后你只需要在你的方法中从中提取元素。您还已经为每个单独的操作提供了单独的方法……所以您只需要使用它们。
规格...
var nameEntity = {
firstName: 'TestName',
lastName: 'TestLastName'
};
pageObject.populateUIWithNameEntity(nameEntity);
页面对象...
this.populateUIWithNameEntity = function(nameEntity) {
this.setFirstNameField(nameEntity.firstName);
this.setLastNameField(nameEntity.lastName);
};