@DimkaI
Системный адинистратор, разработчик ПО

Как при тестировании codeception, проверить создание pdf файла?

Пишу сайт на Yii2. Одно из действий - формирование .pdf файла, открывающегося в браузере на просмотр. В браузере всё открывается, но для автоматического тестирования необходимо удостовериться, что он создался.

Код, формирующий pdf:
public function actionPrint()
    {
        // Список предметов/оборудования, если есть
        $id = Yii::$app->request->get('id');

        $models = Items::find();
        if (isset($id))
            if (is_array($id))
            {
                $models = $models->where([ 'in', 'id', $id ]); // Несколько предметов/оборудования
            } else
            {
                $models = $models->where([ 'id' => $id ]); // Один предмет/оборудование
            }
        $models = $models->all(); // Формирование списка

        $pdf = Yii::$app->pdf; // Pабота с PDF

        $pdf->methods[ 'SetHeader' ] = ''; // Yii::t('items', 'Items');
        $pdf->methods[ 'SetFooter' ] = ''; // ['{PAGENO}'];
        // Границы листа
        $pdf->marginLeft   = 5;
        $pdf->marginRight  = 5;
        $pdf->marginTop    = 9;
        $pdf->marginBottom = 15;
        $pdf->filename     = Yii::t('app', Yii::$app->name) . ' (' . Yii::t('items', 'Items') . ').pdf';

        $pdf->content = $this->renderPartial('print', [ 'models' => $models ]);

        // Выгрузка PDF
        return $pdf->render();
    }

Код, которым проверяю:
public function MoveToPrintItemsCheck(\FunctionalTester $I)
    {
        $I->click(Locator::contains('div a', Yii::t('items', 'Print Items')));
        $I->seeResponseCodeIs(\Codeception\Util\HttpCode::OK);
    }

Но при его выполнении, появляется ошибка:
Test  tests/functional/ItemsCest.php:MoveToPrintItemsCheck
  [yii\base\UnknownPropertyException] Getting unknown property: yii\web\Application::pdf

Как можно проверить, что файл благополучно сформировался?
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы