Използвам 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);
}
}
}
Не искам да пиша дефиниция на една стъпка за всеки сценарий, тъй като се използва повторно много код, който бих предпочел да бъде в един метод. И така, как мога да използвам повторно дефинициите на стъпките и пак да използвам модела на обект на страница?
Благодаря.