测试自动化 - 页面对象 - 策略设计模式
Test Automation - Page Object - Strategy Design Pattern
我想知道什么是解决我遇到的问题的最佳设计
我的应用程序中有一个页面,您可以在其中创建消息。有多种创建消息的方法,具体取决于用户。
我创建了一个名为 CreateMessagePage 的 class。此 class 包含该页面的所有元素和方法。
我有几种创建消息的方法,每种方法都采用不同的参数:
- 创建国家 A 的消息
- 代表 B 国创建消息
- 使用虚假帐户创建消息
- 等等
所以我为每种类型创建了一个 class,每个 class 实现了 CreateMessagePage
CreateMessagePage.cs
| | |
CreateMessage.cs CreateMessageOnBehalfOf.cs CreateMessageFakeAccount.cs
-CreateMessage() -CreateMessage() -CreateMessage()
然后我创建了这些 classes 的实例以用于我的 speckflow 功能步骤(测试用例 class)
例如:
CreateMessage.CreateMessage(string 1, string 2, string 3);
CreateMessageOnBehalfOf.CreateMessage(string 1, string 2, string 3, string 4, string 5);
我想合并策略设计模式但不确定最好的方法是哪些页面对象?我应该合并一个 CreateMessage 接口吗?
只是寻找关于这种情况通常如何在测试自动化框架中完成的意见
我会把它添加为评论,但格式会到处都是。您正在使用 specflow,那么为什么不合并它并添加将创建随机假数据的库 Faker.net?
特征:
Given on the page MyPageName I add a message as a |Country A|
Given on the page MyPageName I add a message as a |Country B|
Given on the page MyPageName I add a message as a |Fake Account|
步骤:
using Faker; //add faker.net from nuget
var _randMessage = Faker.Lorem.Sentence(3);
[Given(@"on the page MyPageName I add a message as a \|(.*)\|")]
public void GivenOnThePageMyPageNameIAddAMessageAsACountryA(string value)
{
switch (value.ToLower())
{
case "country a":
Pages.CreateMessageOnBehalfOf(_randMessage);
break;
case "country b":
Pages.CreateMessage(_randMessage);
break;
case "fake account":
Pages.CreateMessageFakeAccount(_randMessage);
break;
}
}
我想知道什么是解决我遇到的问题的最佳设计
我的应用程序中有一个页面,您可以在其中创建消息。有多种创建消息的方法,具体取决于用户。
我创建了一个名为 CreateMessagePage 的 class。此 class 包含该页面的所有元素和方法。
我有几种创建消息的方法,每种方法都采用不同的参数:
- 创建国家 A 的消息
- 代表 B 国创建消息
- 使用虚假帐户创建消息
- 等等
所以我为每种类型创建了一个 class,每个 class 实现了 CreateMessagePage
CreateMessagePage.cs
| | |
CreateMessage.cs CreateMessageOnBehalfOf.cs CreateMessageFakeAccount.cs
-CreateMessage() -CreateMessage() -CreateMessage()
然后我创建了这些 classes 的实例以用于我的 speckflow 功能步骤(测试用例 class)
例如:
CreateMessage.CreateMessage(string 1, string 2, string 3);
CreateMessageOnBehalfOf.CreateMessage(string 1, string 2, string 3, string 4, string 5);
我想合并策略设计模式但不确定最好的方法是哪些页面对象?我应该合并一个 CreateMessage 接口吗?
只是寻找关于这种情况通常如何在测试自动化框架中完成的意见
我会把它添加为评论,但格式会到处都是。您正在使用 specflow,那么为什么不合并它并添加将创建随机假数据的库 Faker.net?
特征:
Given on the page MyPageName I add a message as a |Country A|
Given on the page MyPageName I add a message as a |Country B|
Given on the page MyPageName I add a message as a |Fake Account|
步骤:
using Faker; //add faker.net from nuget
var _randMessage = Faker.Lorem.Sentence(3);
[Given(@"on the page MyPageName I add a message as a \|(.*)\|")]
public void GivenOnThePageMyPageNameIAddAMessageAsACountryA(string value)
{
switch (value.ToLower())
{
case "country a":
Pages.CreateMessageOnBehalfOf(_randMessage);
break;
case "country b":
Pages.CreateMessage(_randMessage);
break;
case "fake account":
Pages.CreateMessageFakeAccount(_randMessage);
break;
}
}