Перегрузка конфигов приложения

В тестах часто возникает задача модифицировать конфиги приложения (имеется в виду, конфиг, полученный после загрузки всех модулей). Для этих целей в тестах, основанных на \Zend\Test\PHPUnit\Controller\AbstractControllerTestCase, можно применять специальный трейт \Nnx\ZF2TestToolkit\PhpUnit\Test\Utils\OverrideAppConfigTraitTest.

Пример использования:

namespace Nnx\ZF2TestToolkit\PhpUnit\Test\Utils;

use Nnx\ZF2TestToolkit\PhpUnit\TestData\TestPaths;
use Nnx\ZF2TestToolkit\Utils\OverrideAppConfigTrait;
use Zend\Test\PHPUnit\Controller\AbstractConsoleControllerTestCase;

/**
 * Class OverrideAppConfigTraitTest
 *
 * @package Nnx\ZF2TestToolkit\PhpUnit\Test\Utils
 */
class OverrideAppConfigTraitTest  extends AbstractConsoleControllerTestCase
{
    use OverrideAppConfigTrait;


    /**
     * Проверка переопределения конфигов приложения
     *
     * @throws \Zend\ServiceManager\Exception\InvalidServiceNameException
     * @throws \Zend\ServiceManager\Exception\ServiceNotFoundException
     */
    public function testOverrideAppConfig()
    {
        /** @noinspection PhpIncludeInspection */
        $applicationConfig = include TestPaths::getPathToTestOverrideConfigApp();

        /** @noinspection PhpIncludeInspection */
        $this->setApplicationConfig(
            $applicationConfig
        );

        $this->overrideAppConfig([
            'override_config_test_app' => [
                'param1' => 'myValue'
            ]
        ]);

        /** @var array $appConfig */
        $appConfig = $this->getApplicationServiceLocator()->get('config');

        static::assertEquals('myValue', $appConfig['override_config_test_app']['param1']);
    }
}