是否可以制作场景大纲,其中每个示例都在不同的URL中运行?例如,如果示例表中的第一列是某种两位数/字符代码,请根据该值打开不同的起始URL?
答案 0 :(得分:2)
是的,确定。为什么不设置一个设置URL的步骤,将URL用于某个变量(在类中,在ScenarioContext.Current
中,或在自定义上下文对象中),然后在所有调用中使用此URL 。在我的手机上,所以格式化很痛苦,但是这样的事情:
Given I'm using the site '<site>'
When I login
Then something should happen
Examples:
|site |
| aaa.com|
| bbb.com|
然后在给定的步骤中,只记录URL并使用该基本URL在when步骤中构建完整的URL。
您的步骤类看起来像这样。
[Binding]
Public class Steps
{
Private string baseUrl;
[Given ("I'm using the site '(.*)'")]
Public void GivenImUsingTheSite(string baseUrl)
{
This.baseUrl=baseUrl;
}
[When ("I log in")
Public void WhenILogIn()
{
String URL=baseUrl + "\login";
....login
}
}
答案 1 :(得分:0)
鉴于以下情景大纲:
Scenario Outline: Each page has an help option
Given I am on the '<PageName>' page that has id '<Id>'
Then I expect an help option
Examples:
| PageName | Id |
| Home | 0 |
| Products | 5 |
| FAQ | 42 |
然后你可以这样做:
[Given(@"I am on the '(.*)' page that has id '(.*)'")]
public void GivenIAmOnThePageThatHasId(string friendlyName, string id)
{
// pageids are shaped like 'http://www.example.com/pageid?4'
var myUrl = @"http://www.example.com/pageid?" + id;
Console.WriteLine("Navigating to the {0} page following url {1}", friendlyName, myUrl);
NavigateToUrl(myUrl);
}