Есть задача, сделать тесты максимально читабельными. Я делаю так,
And I press "#search" button вот сам степ
When /^I press "(.*?)" button$/ do |locator|
page.find(locator).click
end
А вот как он написан. Задача состоит в том, как бы передавать "#search" этот локатор в код, и при этом сделать степы более читабельными?
Как правильней описывать степы в Cucumber + Selenium?
Автор Rinss, 23 окт 2012 15:12
В теме одно сообщение
#1
Отправлено 23 октября 2012 - 15:12
#2
Отправлено 27 октября 2012 - 23:49
Не вижу смысла передовать локаторы таким образом. Вот логин или пасс да, ну или серч квери.
А уже в степах вызывать нужные методы которые уже сами знают локаторы:
@CorrectSearch Scenario Outline: Correct Search Given Google Search Page When Input '<SearchTerms>' and Click Search Button Then In Search result '<SearchTerms>' Examples: |SearchTerms| |software-testing.ru| |google.com|
А уже в степах вызывать нужные методы которые уже сами знают локаторы:
[Binding] public class CorrectSearch { private GoogleSearchPage googlePage; private GoogleSearchResultsPage resultsPage; [Given("Google Search Page")] public void OpenSearchPage() { googlePage = GoogleSearchPage.Open(); } [When(@"Input '(.*)' and Click Search Button")] public void WhenInput(string input) { resultsPage = googlePage.DoSearch(input, "CorrectSearch"); ScenarioContext.Current.Set(resultsPage, "resultPage"); } [Then(@"In Search result '(.*)'")] public void ThenInSearchResult (string expectedSite) { Assert.IsTrue(resultsPage.IsSiteInSearchResults(expectedSite, "Incorrect Search"), expectedSite+" wasn't in results"); } }
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных