Разговор типа огурца - PullRequest
       4

Разговор типа огурца

0 голосов
/ 16 марта 2012

Я собираюсь протестировать метод класса, который получает целое число в качестве параметра:

def step(response)
   if response < 10

Я создаю сценарий огурца:

Scenario Outline: submit guess
    Given the code "<code>"
    When I response "<answer>"
    Then the result should be "<result>"

    Scenarios: level one
    | code | answer | result |
    |   1  |    2   |    3   |
    |   5  |    4   |    9   |

И различия шагов:

When /^I response "([^"]*)"$/ do  | response |
  @result = @game.step(response)
end

Когда я запускаю тест, я получаю ошибку, потому что огурец передает параметр моему методу как String.

Как я могу это исправить?

Я могу исправить код метода класса:

def step(response)
   response = response.to_i
   if response < 10

, но он сломает весь мой существующий код.

1 Ответ

1 голос
/ 16 марта 2012

Cucumber всегда передает строковые параметры в ваши определения шагов, и определение шага является обязанностью преобразовать параметр в соответствующий тип. Вам нужно сделать это:

When /^I response "([^"]*)"$/ do  | response |
  @result = @game.step(response.to_i)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...