2016-03-17 3 views
1

У меня есть форма, где пользователь должен выбрать пол. Это радио с двумя вариантами - мужским и женским. Как часть моего теста, я хочу посмотреть, как веб-сайт реагирует, когда подано нечто иное, чем мужчина или женщина. Поскольку HTML страницы можно легко изменить на что-либо на стороне пользователя, я хочу подражать этому поведению в моем сценарии. Однако browserKit, который поставляется с Mink, слишком умный - он распознает, что он имеет дело с радио, и помогает мне исключение, если я пытаюсь изменить значение на то, чего не ожидается.Mink + Behat - установка значения для недопустимого значения

Ввод "application [sex]" не может принимать значение iDontKnow в качестве значения (возможные значения: мужчина, женщина). (InvalidArgumentException)

Scenario Outline: Submit form with various data 
    Given I am on homepage 
    And I fill in "application[name]" with "<name>" 
    And I fill in "application[sex]" with "<sex>" 
    And I fill in "application[age]" with "<age>" 
    And I fill in "application[country]" with "<country>" 
    And I press "Save" 
    Then I should see "<expectedText>" 

    Examples: 
     | name  | sex  | age | country   | expectedText    | 
     | Test user | iDontKnow | 30 | United Kingdom  | Invalid sex    | 
     | Test user | male  | 30 | NonExistantCountry | Invalid country   | 

Как отправить iDontKnow в качестве значения

<div id="application_sex"> 
    <input type="radio" id="application_sex_0" name="application[sex]" required="required" value="male"> 
    <label for="application_sex_0" class="required">male</label> 
    <input type="radio" id="application_sex_1" name="application[sex]" required="required" value="female"> 
    <label for="application_sex_1" class="required">female</label> 
</div> 

... если это вообще возможно?

Глядя на ChoiceFormField :: setValue дает намек на то, что необходимо принять принципиально иной подход.

Кажется, что я довольно обычный случай, с которым я работаю, и что такое рекомендуемый подход?

+1

Что я делаю сложно, и я не уверен, что я назвал бы это «лучшей практикой»: в разработке/тестировании/постановке мой шаблон выплескивает '', который Затем я смогу заполнить все, что захочу. В производстве мой шаблон выплескивает '