Как я могу получить параметры из Behat.yml в файл php?

У меня есть 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()"

Я что-то упускаю ? .. я также добавил autoload.php в FeatureContext.php через

   require_once __DIR__.'/../../vendor/autoload.php';

Пожалуйста , дайте знать , если у вас есть идеи , почему это происходит ?


person sharan    schedule 02.01.2014    source источник


Ответы (1)


Ваш класс 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 какое-то время, но вы, вероятно, поняли идею.

person olga    schedule 02.01.2014
comment
Я также пробовал с BehatContext. Это дает мне ту же ошибку .... Неустранимая ошибка PHP: вызов неопределенного метода FeatureContext::getParameter() в D:\mypgms\Again\features\bootstrap\FeatureContext.php в строке 61 - person sharan; 03.01.2014
comment
Смотрите мой отредактированный ответ. Не используйте getParameter (похоже, его не существует, и я не могу найти его в документах API), вместо этого сохраните параметры в переменной-члене в конструкторе для последующего использования. - person olga; 03.01.2014