4

バンドルで構成ビルダーをテストしようとしています:

これは私の DependencyInjection/Configuration.php です

class Configuration implements ConfigurationInterface
{
    /**
     * Generates the configuration tree.
     *
     * @return TreeBuilder
     */
    public function getConfigTreeBuilder()
    {
        $treeBuilder = new TreeBuilder();
        $rootNode = $treeBuilder->root('product_viewer');

        $supportedDrivers = array('REST', 'SOAP');

        $rootNode->children()
            ->arrayNode('car')
                ->children()
                    ->scalarNode('webservice_type')
                        ->validate()
                            ->ifNotInArray($supportedDrivers)
                            ->thenInvalid('The driver %s is not supported. Please choose one of '.json_encode($supportedDrivers))
                        ->end()                
                    ->end()                
                    ->scalarNode('rest_url')->end()
                ->end()
            ->end();                

        return $treeBuilder;
    }
}

私のテスト:

 /**
  * @test
  */
public function fullCondig() {
    $extension = new ProductCalculatorExtension();
    $config = $this->loadConfig('config1'); //this method only load yaml from file and parse it 
    $extension->load(array($config), new ContainerBuilder());
}

テスト済みの構成は次のようになります。

product_viewer:
    car : 
        webservice_type : REST
        rest_url: 'example.com'

残念ながら、私が受けたすべてのテスト:

Symfony\Component\Config\Definition\Exception\InvalidConfigurationException: "product_viewer" の下のオプション "product_viewer" が認識されない

ここで何が間違っているのかわかりません。

4

0 に答える 0