将自定义服务注入 Behat 上下文
Inject custom service into Behat context
是否可以构建我自己的自定义服务并将其注入 Behat 上下文 class?
我正在将 Behat 与 Symfony2 集成,我可以像这样将 Symfony 的服务注入我的上下文中:
contexts:
- Meeebu\MyBundle\Features\Security\Context\SecurityContext:
session: '@session'
前提是 Behat\Symfony2Extension
已注册。
我也在使用 Behat Page Object Extension 将 Page
对象直接注入上下文构造函数,所以我的构造函数目前看起来像这样:
public function __construct(Session $session, Homepage $homepage, WelcomeAdmin $welcomeAdminPage)
现在,我想在 Context class 中使用我的自定义服务。
如何在 Behat 中创建、注册和注入它们?
您需要创建并注册一个 behat 扩展:https://github.com/Behat/Behat/blob/2.5/src/Behat/Behat/Extension/ExtensionInterface.php
然后在load方法中注册你的服务(或者加载一个yml/xml/etc.文件)。
然后将扩展名 class 添加到 behat.yml 到扩展部分。
是否可以构建我自己的自定义服务并将其注入 Behat 上下文 class?
我正在将 Behat 与 Symfony2 集成,我可以像这样将 Symfony 的服务注入我的上下文中:
contexts:
- Meeebu\MyBundle\Features\Security\Context\SecurityContext:
session: '@session'
前提是 Behat\Symfony2Extension
已注册。
我也在使用 Behat Page Object Extension 将 Page
对象直接注入上下文构造函数,所以我的构造函数目前看起来像这样:
public function __construct(Session $session, Homepage $homepage, WelcomeAdmin $welcomeAdminPage)
现在,我想在 Context class 中使用我的自定义服务。
如何在 Behat 中创建、注册和注入它们?
您需要创建并注册一个 behat 扩展:https://github.com/Behat/Behat/blob/2.5/src/Behat/Behat/Extension/ExtensionInterface.php
然后在load方法中注册你的服务(或者加载一个yml/xml/etc.文件)。 然后将扩展名 class 添加到 behat.yml 到扩展部分。