在我的behat.yml上下文中,我需要将一个参数对象变量传递给FeatureContext.php构造函数方法。
在我的behat.yml文件中,无法在FeatureContext.php中实例化构造函数所需的类的实例。
当我运行Behat测试时,它显示一个错误,说我传入了“字符串”,但需要使用FourZeroFour类的实例
这是我的behat.yml
local:
suites:
default:
paths:
# Set features to repo root so that .feature files belonging to contrib
# modules, themes, and profiles can be discovered.
features: /var/www/mywebsite
bootstrap: /var/www/mywebsite/tests/behat/features/bootstrap
contexts:
- Drupal\FeatureContext:
fourZeroFour: FourZeroFour
- Drupal\DrupalExtension\Context\DrupalContext
- Drupal\DrupalExtension\Context\MinkContext
- Drupal\DrupalExtension\Context\MessageContext
- Drupal\DrupalExtension\Context\DrushContext
extensions:
这是我在FeatureContext.php中的构造方法
/**
* FeatureContext class defines custom step definitions for Behat.
*/
class FeatureContext extends PageObjectContext implements SnippetAcceptingContext {
private $fourZeroFour;
public function __construct(FourZeroFour $fourZeroFour) {
$this->fourZeroFour = $fourZeroFour;
}
答案 0 :(得分:1)
我的建议是:
FeatureContext
应该扩展MinkContext
或来自Drupal的另一个上下文,如果有的话,它可以扩展MinkContext
(也许来自drupal的MinkContext
)。yml
文件仅应加载MinkContext
一次,仅添加直接扩展MinkContext
的类(通过另一个类)。
例如:如果FeatureContext扩展了MinkContext或另一个扩展了MinkContext的类,那么在yml中,您只能添加FeatureContext
use