2012-03-16 4 views
0

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

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 | 

И шаг difinitions:

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

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

Как это исправить?

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

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

но это нарушит весь мой существующий код.

+0

ВИДЕТЬ - http://www.engineyard.com/blog/2009/cucumber-step-argument-transforms/ – iafonov

ответ

1

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

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

Спасибо. Позор мне. – demas

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