2016-02-07 1 views
1

Итак, я писал некоторые интеграционные тесты для приложения, над которым я работаю для клиента. У них есть дизайнер, который будет работать над HTML, поэтому наши тесты имеют такие вещи, как проверка наличия ссылки, проверка наличия у группы радио всех значений, которые мы ожидаем иметь и т. Д. (Это так, что после того, как дизайнер даст нам изменения, мы можем убедитесь, что в результате испытаний он не ошибочно изменил некоторые вещи, которые он не должен был менять).Тестирование Laravel: проверьте, существует ли радио-вход с определенным значением на странице

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

$this->visit('/auth/register') 
    ->select('male', 'sex'); 

.. ожидая, что это потерпит неудачу, если не будет радиоввода имени «секс» со значением «мужчина». Таким образом, глядя на источник Laravel я вижу, что это не философия -> выберите(), он просто хранит значение в некоторой внутренней $inputs переменной значения это также потерпит неудачу:

$this->visit('/auth/register') 
    ->select('male', 'sex'); 
    ->seeIsSelected('sex', 'male'); 

Вопрос есть ли способ использования функциональность, встроенная для запуска такого теста, я предполагаю, что вы достигнете предполагаемого использования ->select($value, $option), где он потерпит неудачу, если в представлении нет радио или выберите вход с этой комбинацией $ value и $ option?

PS: Я знаю, и имеют в крайнем случае, в ->see("type='radio' value='male') метод

+0

Что бы вы хотели использовать? И «видит», что делает то, что вам нужно? –

+0

Я думаю, вам понадобится настраиваемая функция для этого, если 'see()' недостаточно хорош –

+0

Вы правы. Завершилось выполнение чего-то обычного, но встроенные могут приблизиться (если вы можете проверить ответ ниже). Благодаря! – Theson

ответ

1

Кажется, есть не путь в утверждениях по умолчанию, чтобы сделать это. Наиболее близкими по функциональности были seeInField() & seeIsSelected(), но они не делают именно то, что я хотел. Одно из возможных решений (которые могут быть изменены в соответствии с вашими вкусами утверждение) является:

$this->assertCount(1, $this->visit('/auth/register') 
    ->crawler->filter('input[name="sex"][value="female"]')); 

Другим решением является обычай утверждение, как Джошуа Pendo советовал.

+0

Отличная работа и благодарность за решение –

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

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