如何从Behat.yml获取参数到php文件?

时间:2014-01-02 09:03:39

标签: php behat mink

我有一个Behat.yml

  default :
     context :
       parameters :
            user: xyz
            password : abc

我还有一个名为FeatureContext.php的文件,它从behat.yml到

检索值
   public function iExample($user, $password)
    {
       $userName=$this->getParameter($user);
    }

但它会抛出像

这样的错误
   "Call to undefined method FeatureContext::getParameter()"

我错过了什么吗? ..我还在FeatureContext.php中通过

添加了autoload.php
   require_once __DIR__.'/../../vendor/autoload.php';

如果您知道为什么会这样,请告诉我们?

1 个答案:

答案 0 :(得分:7)

您的FeatureContext类必须扩展BehatContext,然后在FeatureContext的构造函数中将参数数组作为参数。有关示例,请参阅http://michaelheap.com/behat-selenium2-webdriver/

编辑:

class FeatureContext extends BehatContext
{
    private $params = array();

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

    public function iExample($user, $password)
    {
        $userName = $this->params['user'];
    }
}

我有一段时间没有使用Behat,但你可能已经明白了。