Преобразование хеша в многострочный аргумент в ruby - PullRequest
0 голосов
/ 05 июня 2018

Привет, я вызываю шаг в другом шаге, и оба шага используют таблицу в качестве аргумента.Моя проблема в том, что когда я на шаге 1, я преобразовываю таблицу в хеш и получаю доступ к значениям из нее.Теперь моя проблема заключается в том, что я хочу передать те же значения хеш-функции или текущие значения строк вызываемому шагу.Как я должен это делать?Формат таблицы в файле объектов и коде выглядит следующим образом:

Таблица Мне нужно передать или хотя бы строки, которые меня интересуют:

   |column_a|column_b|column_c|
   |1       |2       |3       |
   |4       |2       |6       |
   |3       |1       |7       |  

And(/^I verify the structure$/) do |table|
  hashes = table.hashes
  hashes.each do |deeplink_url|
    if deeplink_url['column_b'] == '2'
    step('I verify that following transactions are reported', table)
  end
end

Таблица, которую я передаю, та же самаяТаблица используется на шаге сам.Моя идея состоит в том, чтобы передать текущую строку:

step('I verify that following transactions are reported', deeplink_url['column_b','column_c'])

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

1 Ответ

0 голосов
/ 06 июня 2018

Не вкладывайте шаги, о которых вы только что просили.Вместо этого извлеките вспомогательный метод и вызовите его.Это значительно упростит передачу параметров.Таким образом, в вашем коде вы можете заменить

step('I verify that following transactions are reported', table)

на

verify_table(...)

Это дает вам гораздо больший контроль над параметрами и тем, как выобработайте их и сделайте вызов намного проще.

Шаги вложения - это анти-шаблон огурца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...