2016-08-19 2 views
0

Этого шаг в моей особенности файл Ruby, чтобы найти и получить доступ к записи клиента:Огурцов ошибка Арности несоответствие

When I search with the following details: "<recordReference>", "<secondIdentifier>", "<postcode>": 
    | recordReference | secondIdentifier| postcode | 
    | REFABCDE12345678| IDcode1234  | PC11 1PC | 

имеет это определение шага:

When(/^I search with the following details: "(.*?)", "(.*?)", "(.*?)":$/) do |recordReference, secondIdentifier, postcode| 
    find(:css, "#dln").native.send_keys recordReference 
    find(:css, "#nino").native.send_keys secondIdentifier 
    find(:css, "#postcode").native.send_keys postcode 
    check 'confirmation' 
    click_button 'submit' 
end 

Когда он запущен, я получаю следующее ошибка:

Cucumber::ArityMismatchError: Your block takes 3 arguments, but the Regexp matched 4 arguments. 
features/step_definitions/refactored_commands.rb:207:in `/^I search with the following details: "(.*?)", "(.*?)", "(.*?)":$/' 

Что я сделал неправильно и как его можно исправить?

Для информации - я получаю то же сообщение об ошибке, если parenthases которые вынимают из определения шага:

When /^I search with the following details: "(.*?)", "(.*?)", "(.*?)":$/ do |recordReference, secondIdentifier, postcode| 

ответ

1

Четвертый аргумент является DataTable. Удалите первые 3 параметра и добавьте только параметр DataTable, вы получите все данные из DataTable. Предложите использовать параметр dryRun = true, чтобы позволить Cucumber создать правильный элемент определения шага, это из моих знаний Java, не знаю, как этот параметр dryRun находится в рубине. Кроме того, вы должны изменить свой шаг в файле функция, чтобы удалить указанные 3 параметра

0

Похоже, вы путаете сценарий очерчивает с прохождением таблицы данных шагов

Из формата вашей таблицы это похоже, что вы собираетесь на самом деле должно быть

Scenario Outline: xxx 
    ... 
    When I search with the following details: "<recordReference>", "<secondIdentifier>", "<postcode>" 
    ... 

    Examples: 
    | recordReference | secondIdentifier| postcode | 
    | REFABCDE12345678| IDcode1234  | PC11 1PC | 

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

When(/^I search with the following details: "(.*?)", "(.*?)", "(.*?)"$/) do |recordReference, secondIdentifier, postcode| 
    ... 
end 

На стороне записки - есть какая-либо причина вы звоните .native.send_keys - Я считаю, что каждый водитель теперь поддерживает нормальный водосвинку send_keys API, так что будет просто find(:css, '#dln').send_keys recordReference (или, конечно, просто fill_in('dln', with: recordReference))

 Смежные вопросы

  • Нет связанных вопросов^_^