【问题标题】:Accessing Symfony 2' s DI container from mink从 mink 访问 Symfony 2 的 DI 容器
【发布时间】:2013-04-17 08:33:19
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: php symfony behat mink


    【解决方案1】:

    As docs say:

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

    这意味着你的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,这样配置与 dev 和 prod 是分开的)。

    【讨论】:

      猜你喜欢
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 2012-02-16
      • 1970-01-01
      • 2018-04-26
      • 2012-04-23
      相关资源
      最近更新 更多