从水貂访问Symfony 2的DI容器

时间:2013-04-17 08:33:20

标签: php symfony behat mink

我正在使用带有mink扩展名的behat来运行fonctionnal测试。 我有一个FeatureContext,扩展了MinkContext。

我正在尝试将自定义参数传递给我的上下文,但我不确定如何。我的想法是将它们放在behat.yml中,然后使用Symfony的容器访问它们,但我不知道如何从我的FeatureContext访问它。

由于

1 个答案:

答案 0 :(得分:1)

As docs say

  

参数是一个简单的数组,将被传递给   实例化时上下文类的构造函数,会发生这种情况   在每个场景之前。

这意味着您behat.yml中定义的参数:

default:
    context:
        parameters:
            my_parameter: my_value

通过构造函数传递给您的上下文:

class FeatureContext extends RawMinkContext
{
    private $parameters = array();

    public function __construct(array $parameters)
    {
        $this->parameters = $parameters;
    }
}

如果您打算从Symfony容器中更改参数,您应该在其中一个Symfony配置文件中执行此操作(您应该再次运行behat tests环境,这样配置与dev和prod分开)。