[Решено] Почему валится тест проверки формы ?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
nepster
Сообщения: 838
Зарегистрирован: 2013.01.02, 03:35

[Решено] Почему валится тест проверки формы ?

Сообщение nepster »

Барыжу тестами по не многу и столкнулся с небольшой трудностью:

Есть форма:

Код: Выделить всё

<?php $form = ActiveForm::begin(['id' => 'form-project']); ?>
    <?= $form->field($model, 'name') ?>
    <?= $form->field($model, 'description')->textarea() ?>
    <?= $form->field($model, 'status')->dropDownList($model->getStatusArray()) ?>
    
    <div class="form-group">
        <?= Html::submitButton('Сохранить', ['class' => 'btn btn-primary', 'name' => 'button-save']) ?>
    </div>

<?php ActiveForm::end(); ?>
Хорошо было бы ее протестировать:

Код: Выделить всё

$I->submitForm('#form-project', [
    'ProjectForm[name]' => 'Название',
    'ProjectForm[description]' => 'Описание',
], 'button-save');

if (method_exists($I, 'wait')) {
    $I->wait(3); // only for selenium
}

$I->dontSeeElement('#form-project');
$I->see('Данные успешно сохранены');
Валится вот с такими ошибками:
Step I don't see element "#form-project"
Fail Element '#form-project' was found

Причем никакие данные в базу не заносятся. Проверил работу проекта в ручную, все окей.

В чем может быть проблема ?
Последний раз редактировалось nepster 2015.08.18, 15:25, всего редактировалось 1 раз.
nepster
Сообщения: 838
Зарегистрирован: 2013.01.02, 03:35

Re: Почему валится тест проверки формы ?

Сообщение nepster »

Все оказалось просто. Обязательно нужно заполнить select, если он есть.

Код: Выделить всё

$I->fillField('ProjectForm[name]', 'Новый проект');
$I->fillField('ProjectForm[description]', 'Описание');
$I->selectOption('ProjectForm[status]','Открыт');
$I->click('Сохранить');


if (method_exists($I, 'wait')) {
    $I->wait(3);
}

$I->dontSeeElement('#form-project');
$I->see('Данные успешно сохранены'); 
Ответить