Testing
Testing your configuration with WPZylos Config.
Unit Testing
Testing Config Access
use PHPUnit\Framework\TestCase;
use WPZylos\Framework\Config\Config;
class ConfigTest extends TestCase
{
private Config $config;
protected function setUp(): void
{
$this->config = new Config([
'path' => __DIR__ . '/fixtures/config',
]);
}
public function testGetReturnsValue(): void
{
$name = $this->config->get('app.name');
$this->assertEquals('Test App', $name);
}
public function testGetReturnsDefault(): void
{
$value = $this->config->get('nonexistent.key', 'default');
$this->assertEquals('default', $value);
}
public function testHasChecksExistence(): void
{
$this->assertTrue($this->config->has('app.name'));
$this->assertFalse($this->config->has('nonexistent'));
}
public function testSetUpdatesValue(): void
{
$this->config->set('app.debug', true);
$this->assertTrue($this->config->get('app.debug'));
}
}
Testing with Config Fixture
// tests/fixtures/config/app.php
return [
'name' => 'Test App',
'version' => '1.0.0',
'debug' => false,
];
Testing Services with Config
class PluginServiceTest extends TestCase
{
public function testUsesConfigValues(): void
{
$config = $this->createMock(Config::class);
$config->method('get')
->with('app.version')
->willReturn('2.0.0');
$service = new PluginService($config);
$this->assertEquals('2.0.0', $service->getVersion());
}
}
Running Tests
composer run test