W Symfony2, używając tej konfiguracji klas, jak mogę przetestować, czy każdy węzeł jest zdefiniowany w klasie Configuration
i czy ich wartości są poprawnie skonfigurowane.Symfony2: Jak przetestować wartości węzłów konfiguracji i indeks
Klasa przetestować
# My\Bundle\DependencyInjection\Configuration.php class Configuration implements ConfigurationInterface { /** * {@inheritDoc} */ public function getConfigTreeBuilder() { $treeBuilder = new TreeBuilder(); $treeBuilder->root('my_bundle') ->children() ->scalarNode("scalar")->defaultValue("defaultValue")->end() ->arrayNode("arrayNode") ->children() ->scalarNode("val1")->defaultValue("defaultValue1")->end() ->scalarNode("val2")->defaultValue("defaultValue2")->end() ->end() ->end() ->end() ; return $treeBuilder; } }
Oto twierdzenia chciałbym zrobić w moim badanej jednostki:
I próbuje uzyskać dostęp do węzłów jako tablica, ale nie wydaje się działać. Również wydaje się, że TreeBuilder
nie daje nam możliwości uzyskania konfiguracji jako tablicy, chyba że są one ładowane przez rozszerzenie pakietu.
Testy
# My\Bundle\Tests\DependencyInjection\ConfigurationTest.php $configuration = $this->getConfiguration(); $treeBuilder = $configuration->getConfigTreeBuilder(); $this->assertInstanceOf("Symfony\Component\Config\Definition\Builder\TreeBuilder", $treeBuilder); // How to access the treebuilder's nodes ? $rootNode = $treeBuilder["my_bundle"]; $scalarNode = $treeBuilder["scalar"]; $arrayNode = $treeBuilder["arrayNode"]; $val1Node = $arrayNode["val1"]; $val2Node = $arrayNode["val2"]; $this->assertInstanceOf("Symfony\...\ArrayNodeDefinition", $rootNode); $this->assertEquals("defaultValue", $scalarNode, "Test the default value of the node"); $this->assertEquals("defaultValue", $val1Node, "Test the default value of the node"); $this->assertEquals("defaultValue", $val2Node, "Test the default value of the node");
nie sądzę, to jest właściwie dobry pomysł przetestuj konfigurację i przetestuj ją w ten sposób. – Ziumin
@ Ziumin, Jaką metodę sugerowałabyś, aby wartość miała ustawioną domyślną wartość lub domyślny identyfikator usługi powinien być potwierdzony ... – yvoyer
Sugeruję przygotowanie zestawu testów i sprawdzenie, czy są one przetwarzane poprawnie Klasa konfiguracji – Ziumin