Я использую Specflow с объектами страницы, и у меня есть много очень похожих сценариев. Например:
Given I view the 'page1'
When I click 'link1'
Then I should be on 'page2'
Given I view the 'page1'
When I click 'link2'
Then I should be on 'page3'
Я изо всех сил пытаюсь понять, как у меня может быть привязка одного шага для шага «Когда я нажимаю ...». Если я следую шаблону объектов страницы, я всегда должен возвращать конкретный объект страницы, к которому я перешел на шаге «Тогда я должен ...».
У меня есть класс определения базового шага, который содержит свойство, в котором хранится текущий объект страницы.
public class BaseStep : Steps
{
protected RemoteWebDriver Driver {
get
{
return ScenarioContext.Current.Get<RemoteWebDriver>();
}
set
{
ScenarioContext.Current.Set(value);
}
}
protected BasePageObject CurrentPageObject
{
get
{
return ScenarioContext.Current.Get<BasePageObject>();
}
set
{
ScenarioContext.Current.Set(value);
}
}
}
Я не хочу писать одноэтапное определение для каждого сценария, поскольку он повторно использует большой объем кода, который я бы предпочел использовать в одном методе. Итак, как я могу повторно использовать определения шагов и по-прежнему использовать шаблон объекта страницы?
Спасибо.