Не получается вызвать компонент из PHPUnit

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
Аватара пользователя
spions
Сообщения: 21
Зарегистрирован: 2015.05.27, 10:45
Контактная информация:

Не получается вызвать компонент из PHPUnit

Сообщение spions »

В процессе осваивания PHPUnit столкнулся с невозможностью вызова компонента из файла тестирования с ошибкой "Trying to get property of non-object".

Если разместить вызов "fs->write" в модели, и делать запрос через web все работает, если дергать эту модель из PHPUnit - ошибка.

Догадываюсь, что после подключения конфига, нужно как-то инициализировать компонент, но как не понимаю.

Код теста:

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

<?php
namespace tests;
require_once(__DIR__ . '/../_bootstrap.php');

use Yii;
use backend\modules\core\models\Files;

class FilesystemTest extends \PHPUnit\Framework\TestCase
{
    public function testSafeFile()
    {
	Yii::$app->fs->write('filename.ext', 'contents');
    }

}
Код конфига "config/base.php"

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

    'components' => [
     ...
        'fs' => [
            'class' => 'creocoder\flysystem\LocalFilesystem',
            'path' => env('SourcesPath1'),
        ],
Код лоадера "_bootstrap.php"

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

<?php
require_once dirname(__FILE__, 2) . '/vendor/autoload.php';
require_once(dirname(__FILE__, 2) . '/common/env.php');
require_once(dirname(__FILE__, 2) . '/vendor/yiisoft/yii2/Yii.php');
require_once(dirname(__FILE__, 2) . '/common/config/bootstrap.php');

$config = \yii\helpers\ArrayHelper::merge(
    require_once(dirname(__FILE__, 2) . '/common/config/base.php')
);
Yii::setAlias('@tests', dirname(__DIR__));
Аватара пользователя
spions
Сообщения: 21
Зарегистрирован: 2015.05.27, 10:45
Контактная информация:

Re: Не получается вызвать компонент из PHPUnit

Сообщение spions »

Был забыт в "_bootstrap.php".
$exitCode = (new yii\console\Application($config));
Закрыто