在Symfony2中,使用此类设置,我如何测试每个节点是否在
return $treeBuilder; } } ``` 这是我想要在单元测试中执行的断言: 我尝试将节点作为数组访问,但似乎不起作用。 此外,
// 如何访问树构建器的节点? $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, "测试节点的默认值"); $this->assertEquals("defaultValue", $val1Node, "测试节点的默认值"); $this->assertEquals("defaultValue", $val2Node, "测试节点的默认值"); ```
Configuration
类中定义,并且它们的值是否正确配置。
测试用的类:
```php
# 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; } } ``` 这是我想要在单元测试中执行的断言: 我尝试将节点作为数组访问,但似乎不起作用。 此外,
TreeBuilder
似乎不会给我们以获取配置作为数组的可能性,除非它们由bundle extension加载。
测试代码:
```php
# My\Bundle\Tests\DependencyInjection\ConfigurationTest.php
$configuration = $this->getConfiguration();
$treeBuilder = $configuration->getConfigTreeBuilder();
$this->assertInstanceOf("Symfony\Component\Config\Definition\Builder\TreeBuilder", $treeBuilder);// 如何访问树构建器的节点? $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, "测试节点的默认值"); $this->assertEquals("defaultValue", $val1Node, "测试节点的默认值"); $this->assertEquals("defaultValue", $val2Node, "测试节点的默认值"); ```