将自定义服务注入Behat上下文

时间:2016-02-01 11:16:03

标签: symfony dependency-injection behat

是否可以在Behat Context类中构建和注入我自己的自定义服务?

我将Behat与Symfony2集成在一起,我可以将Symfony的服务注入我的上下文中:

contexts:
    - Meeebu\MyBundle\Features\Security\Context\SecurityContext:
        session:    '@session'

如果Behat\Symfony2Extension已注册。

我还使用Behat Page Object Extension直接将Page个对象注入到Context构造函数中,所以我的constructo目前看起来像这样:

public function __construct(Session $session, Homepage $homepage, WelcomeAdmin $welcomeAdminPage)

现在,我想在Context类中使用我的自定义服务。

如何在Behat中创建,注册和注入它们?

1 个答案:

答案 0 :(得分:0)

您需要创建并注册behat扩展程序:https://github.com/Behat/Behat/blob/2.5/src/Behat/Behat/Extension/ExtensionInterface.php

然后在load方法中注册您的服务(或加载yml / xml / etc.文件)。 然后将一个扩展类添加到behat.yml,到扩展部分。