Перейти к содержимому

Фотография

Нужна помощь с написанием цикла for each

java cucumber

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 9

#1 MoshneagaOleg

MoshneagaOleg

    Новый участник

  • Members
  • Pip
  • 48 сообщений
  • ФИО:Мошняга Олег Михайлович

Отправлено 16 августа 2018 - 13:26

У нас есть feature file первый стэп проходит хорошо, второй нужно кликнуть на все кнопки  

Scenario: OJ-339: Test HolidayPage verify url
    Given user is on Holiday Page
    When user verify page url
      | January Page   |
      | February Page  |
      | March Page     |
      | April Page     |
      | May Page       |
      | June Page      |
      | July Page      |
      | August Page    |
      | September Page |
      | October Page   |
      | November Page  |
      | December Page  |

В самом стэп дифинишн я создаю лист где будут все эти кнопки, а теперь мне надо сделать цикл for чтобы кликнуть на них, как это написать ?

@When("^user verify page url$")
    public void userClicksOn(DataTable dataTable) throws Throwable {
        HolidayPage holidayPage = (HolidayPage) uiScenarioContext.getCurrentPage();
        List<String> months = dataTable.asList(String.class);
        for (int i = 0; i < months.size() ; i++) {
          

      }
    }

  • 0

#2 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 16 августа 2018 - 13:48

С циклом у вас никаких проблем нет, вы его написали.
Проблема у вас с тем, что вы пытаетесь писать тест и реализацию одновременно. В результате вы пытаетесь писать реализацию неведомой х%ни и неудивительно что вам от этого странно.
Допишите тест. Когда он примет понятную форму которую человек сможет выполнить, тогда пишите реализацию.
  • 0

#3 MoshneagaOleg

MoshneagaOleg

    Новый участник

  • Members
  • Pip
  • 48 сообщений
  • ФИО:Мошняга Олег Михайлович

Отправлено 16 августа 2018 - 14:05

С циклом у вас никаких проблем нет, вы его написали.
Проблема у вас с тем, что вы пытаетесь писать тест и реализацию одновременно. В результате вы пытаетесь писать реализацию неведомой х%ни и неудивительно что вам от этого странно.
Допишите тест. Когда он примет понятную форму которую человек сможет выполнить, тогда пишите реализацию.

Просто комментарий ради комментария это не хорошо)
Если что-то в тесте не понятно, могу объяснить, у каждого свой фрейм, тесты разные 


  • 0

#4 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 16 августа 2018 - 16:04

Отлично.
Берем ваш сценарий.
Открываю страничку с праздниками.
Проверяю урл страницы Января. Это урл страницы с праздниками.
Проверяю урл страницы Февраля. Это урл страницы с праздниками.
Проверяю урл страницы Марта. Это урл страницы с праздниками.
Проверяю урл страницы Апреля. Это урл страницы с праздниками.
Проверяю урл страницы Мая. Это урл страницы с праздниками.
Проверяю урл страницы Июня. Это урл страницы с праздниками.
Проверяю урл страницы Июля. Это урл страницы с праздниками.
Проверяю урл страницы Августа. Это урл страницы с праздниками.
Проверяю урл страницы Сентября. Это урл страницы с праздниками.
Проверяю урл страницы Октября. Это урл страницы с праздниками.
Проверяю урл страницы Ноября. Это урл страницы с праздниками.
Проверяю урл страницы Декабря. Это урл страницы с праздниками.

Эгей! Тест PASSED.
Правда я не понял что мы проверяли и зачем, и какого результата ждали.
Я не знаю какой у вас там фрейм, но это не тест. Он не проверяет ничего.
Тест состоит из Состояния, Действия и Ожидаемого результата. Вы никакого результата не ожидаете.
Когда у вас хорошо написан тест у вас не возникает проблем с реализацией степов.
  • 0

#5 MoshneagaOleg

MoshneagaOleg

    Новый участник

  • Members
  • Pip
  • 48 сообщений
  • ФИО:Мошняга Олег Михайлович

Отправлено 16 августа 2018 - 17:38

Отлично.
Берем ваш сценарий.
Открываю страничку с праздниками.
Проверяю урл страницы Января. Это урл страницы с праздниками.
Проверяю урл страницы Февраля. Это урл страницы с праздниками.
Проверяю урл страницы Марта. Это урл страницы с праздниками.
Проверяю урл страницы Апреля. Это урл страницы с праздниками.
Проверяю урл страницы Мая. Это урл страницы с праздниками.
Проверяю урл страницы Июня. Это урл страницы с праздниками.
Проверяю урл страницы Июля. Это урл страницы с праздниками.
Проверяю урл страницы Августа. Это урл страницы с праздниками.
Проверяю урл страницы Сентября. Это урл страницы с праздниками.
Проверяю урл страницы Октября. Это урл страницы с праздниками.
Проверяю урл страницы Ноября. Это урл страницы с праздниками.
Проверяю урл страницы Декабря. Это урл страницы с праздниками.

Эгей! Тест PASSED.
Правда я не понял что мы проверяли и зачем, и какого результата ждали.
Я не знаю какой у вас там фрейм, но это не тест. Он не проверяет ничего.
Тест состоит из Состояния, Действия и Ожидаемого результата. Вы никакого результата не ожидаете.
Когда у вас хорошо написан тест у вас не возникает проблем с реализацией степов.

В цикле for я хочу реализовать клик на каждую кнопку (тот список что в кукумбер файле) и сразу после этого дать проверку, раз я дошел до кукумбер и научился писать стэп дифинишн, думаю я знаю что такое тест) а вы как думаете )?


  • 0

#6 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 16 августа 2018 - 19:22

Отлично.
Берем ваш сценарий.
Открываю страничку с праздниками.
Проверяю урл страницы Января. Это урл страницы с праздниками.
Проверяю урл страницы Февраля. Это урл страницы с праздниками.
Проверяю урл страницы Марта. Это урл страницы с праздниками.
Проверяю урл страницы Апреля. Это урл страницы с праздниками.
Проверяю урл страницы Мая. Это урл страницы с праздниками.
Проверяю урл страницы Июня. Это урл страницы с праздниками.
Проверяю урл страницы Июля. Это урл страницы с праздниками.
Проверяю урл страницы Августа. Это урл страницы с праздниками.
Проверяю урл страницы Сентября. Это урл страницы с праздниками.
Проверяю урл страницы Октября. Это урл страницы с праздниками.
Проверяю урл страницы Ноября. Это урл страницы с праздниками.
Проверяю урл страницы Декабря. Это урл страницы с праздниками.

Эгей! Тест PASSED.
Правда я не понял что мы проверяли и зачем, и какого результата ждали.
Я не знаю какой у вас там фрейм, но это не тест. Он не проверяет ничего.
Тест состоит из Состояния, Действия и Ожидаемого результата. Вы никакого результата не ожидаете.
Когда у вас хорошо написан тест у вас не возникает проблем с реализацией степов.

В цикле for я хочу реализовать клик на каждую кнопку (тот список что в кукумбер файле) и сразу после этого дать проверку, раз я дошел до кукумбер и научился писать стэп дифинишн, думаю я знаю что такое тест) а вы как думаете )?

Я думаю у вас много иллюзий.
9 из 10 приходящих на собеседование не способны подготовить тестовые данные и составить тесты для простой функции выбора товара по группе с пагинацией. И это не джуниоры.
Что до кукумбера, до которого вы дошли, в нем не принято делать ассерты в when.
  • 0

#7 MoshneagaOleg

MoshneagaOleg

    Новый участник

  • Members
  • Pip
  • 48 сообщений
  • ФИО:Мошняга Олег Михайлович

Отправлено 17 августа 2018 - 06:29

 

 

Отлично.
Берем ваш сценарий.
Открываю страничку с праздниками.
Проверяю урл страницы Января. Это урл страницы с праздниками.
Проверяю урл страницы Февраля. Это урл страницы с праздниками.
Проверяю урл страницы Марта. Это урл страницы с праздниками.
Проверяю урл страницы Апреля. Это урл страницы с праздниками.
Проверяю урл страницы Мая. Это урл страницы с праздниками.
Проверяю урл страницы Июня. Это урл страницы с праздниками.
Проверяю урл страницы Июля. Это урл страницы с праздниками.
Проверяю урл страницы Августа. Это урл страницы с праздниками.
Проверяю урл страницы Сентября. Это урл страницы с праздниками.
Проверяю урл страницы Октября. Это урл страницы с праздниками.
Проверяю урл страницы Ноября. Это урл страницы с праздниками.
Проверяю урл страницы Декабря. Это урл страницы с праздниками.

Эгей! Тест PASSED.
Правда я не понял что мы проверяли и зачем, и какого результата ждали.
Я не знаю какой у вас там фрейм, но это не тест. Он не проверяет ничего.
Тест состоит из Состояния, Действия и Ожидаемого результата. Вы никакого результата не ожидаете.
Когда у вас хорошо написан тест у вас не возникает проблем с реализацией степов.

В цикле for я хочу реализовать клик на каждую кнопку (тот список что в кукумбер файле) и сразу после этого дать проверку, раз я дошел до кукумбер и научился писать стэп дифинишн, думаю я знаю что такое тест) а вы как думаете )?

 

Я думаю у вас много иллюзий.
9 из 10 приходящих на собеседование не способны подготовить тестовые данные и составить тесты для простой функции выбора товара по группе с пагинацией. И это не джуниоры.
Что до кукумбера, до которого вы дошли, в нем не принято делать ассерты в when.

 

учту, спасибо за корректировку, но как кликнуть на каждую кнопку в листе ? (лист string, a сами кнопки типа (сами написали) buttons)


  • 0

#8 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 17 августа 2018 - 11:30

Нельзя кликнуть на каждую кнопку в листе, если в листе нет ни одной кнопки.
Надо установить соответствие string -> button.
В джаве это делается через HashMap. То есть, вы создаете Map<String,Button> buttons = new.HashMap<String,Button>(); наполняете его, затем

for(String month : months){
Button button = buttons.get(month);
\\ здесь делаете что вам нужно с button
}

ЗЫ: "Core Java" почитайте, есть на русском. вот первый том: https://www.ozon.ru/...ASABEgK1d_D_BwE
  • 0

#9 Noksa

Noksa

    Активный участник

  • Members
  • PipPip
  • 117 сообщений
  • ФИО:Александр

Отправлено 17 августа 2018 - 12:36

Сейчас чувствую такой велосипед будет создан)

 

Я уже не один раз писал, что для кукумбера лучше юзать готовые решения, например это https://github.com/s.../page-factory-2

 

И не придётся писать никаких соответствий. А-то там щас человек такое нагородит, что потом это даже рефакторить не надо будет xD


  • 0

#10 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 30 августа 2018 - 14:02

Табличка условиях в кукумбере - для передачи кучи параметров в один сценарий, а не для циклов.

Для проверки кучи данных - examples после описания самого теста. Тогда тест будет запускаться для каждой строчки в examples.


  • 0



Темы с аналогичным тегами java, cucumber

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных