Я только начинаю работать с PHPUnit и пытаюсь протестировать определенные функции. Например, у меня есть следующий класс с загрузкой библиотеки DotEnv, и я хотел бы проверить следующие функции ...
- Проверка загрузки переменных
- Проверкаэто не так, если конфиг уже кэширован
- Тестирование выдает исключение, если отсутствует требуемая переменная
Но я борюсь с лучшим способом сделать это $app->configurationIsCached()
управляется в другом месте, поэтому блокирует выполнение остальной части класса.
<?php declare(strict_types=1);
namespace Foundation\Bootstrap;
use Dotenv\Dotenv;
use Foundation\Core;
class LoadEnvironmentVariables
{
/**
* Any required variables.
*
* @var array
*/
protected $required = [
'APP_URL',
'DB_NAME',
'DB_USER',
'DB_PASS',
'DB_HOST'
];
/**
* Creates a new instance.
*
* @param Core $app The application instance.
*/
public function __construct(Core $app)
{
// If the configuration is cached, then we don't need DotEnv.
if ($app->configurationIsCached()) {
return;
}
// Load the DotEnv instance
$this->load($app->get('paths.base'));
}
/**
* Loads the .env file at the given path
*
* @param string $filePath The path to the .env file
* @return void
*/
public function load(string $filePath)
{
$dotEnv = Dotenv::create($filePath);
$dotEnv->safeLoad();
$dotEnv->required($this->required);
}
}