codepug
@codepug
Всю жизнь в IT, начинающий тестировщик

Codeception + yii2, кто объяснит трувэй для работы с behaviors (аплоад картинок), работой с бд и фикстурами?

Небольшое вступление:
У нас много написанных на Yii2 крупных и средних проектов. Проблема стара как мир: нужно тестирование, для сокращения времени поддержки существующих приложений. В тестах мы понимаем только то, что они нужны как воздух ;)
- Решил использовать Codeception,
- Развернули, сделал базовые тесты, +-понимаю где что лежит и зачем.
- Развернул проект специально с багом, который и пытаюсь отловить но не получается - тест завершается успешно.

Насущные вопросы:
- Есть сайт с товарами, к товарам есть лейблы (аля акция, скидка и т.п.) Выглядит это так: joxi.ru/4AkOBRPfMzdVnA Слева отображение на сайте, справа форма для редактирования.
- Баг который пытаюсь отловить, (картинка к стикеру обязательна) - при редактировании уже существующего стикера, и сохранении без изменений - выдается ошибка: "Необходимо заполнить «Изображение»." Скрин шот: joxi.ru/ZrJq8oLH14X04A
- Код теста выглядит так:
$I->amOnPage('/admin/products/site-stickers/update/5');
        $I->attachFile('#sitestickers-image', 'lace.png');
        $I->See('StickerForTest');
        $I->click('Сохранить');
        $I->dontSeeElement('.has-error');

- Результат теста: ✔ SiteStickersCest: Edit correct sticker (0.09s)
*В модели используется behavior, ничего не сообразил кроме его детачить (в противном случае error status 0 - файл загружен, но выдает ошибку (видимо из-за необходимости дальнейших с ним манипуляций)):
public function actionUpdate($id)
    {
        $model = $this->findModel($id);

        if ($model->load(Yii::$app->request->post()) && $model->validate()) {
           if (YII_ENV=='test') {
                $model->detachBehavior('photo');
            }
            $model->save( false );
            return $this->redirect(['index']);


        } else {
            return $this->render('update', [
                'model' => $model,
            ]);
        }
    }

- Подскажите, что делаю не так?
- - Задача покрыть проект не полностью тестами, а тестировать основной критичный функционал,
- - Хотелось бы полностью тестировать загрузку картинки, ее дальнейшую обработку, запись в базу модели, и проверку ее записи.

Спасибо!
  • Вопрос задан
  • 287 просмотров
Пригласить эксперта
Ответы на вопрос 1
codepug
@codepug Автор вопроса
Всю жизнь в IT, начинающий тестировщик
Коллеги, разыскивается энтузиаст готовый за $ объяснить по скайпу или в офисе в Москве, основные подходы, и покрыть для примера моими руками тестами работающее приложение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы