04/12/2015 - BEHAT
You can either implement KernelAwareInterface
or ContainerAwareInterface
so it's up to you.
namespace Football\TeamBundle\Features\Context;
use Behat\MinkExtension\Context\MinkContext;
use Behat\Symfony2Extension\Context\KernelAwareInterface;
use Symfony\Component\HttpKernel\KernelInterface;
class FeatureContext extends MinkContext implements KernelAwareInterface
{
private $kernel;
public function setKernel(KernelInterface $kernelInterface)
{
$this->kernel = $kernelInterface;
}
/**
* @param string $name
*
* @return object
*/
public function getService($name)
{
return $this->kernel->getContainer()->get($name);
}
/**
* @param string $name
*
* @return mixed
*/
public function getParameter($name)
{
return $this->kernel->getContainer()->getParameter($name);
}
/**
* @param null|string $name
*
* @return EntityManagerInterface
*/
public function getEntityManager($name = null)
{
return $this->kernel->getContainer()->get('doctrine')->getManager($name);
}
/**
* @param null|string $name
*
* @return DocumentManager
*/
public function getDocumentManager($name = 'doctrine_mongodb.odm.default_document_manager')
{
return $this->kernel->getContainer()->get($name);
}
}
namespace Football\TeamBundle\Features\Context;
use Behat\MinkExtension\Context\MinkContext;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class FeatureContext extends MinkContext implements ContainerAwareInterface
{
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
/**
* @param string $name
*
* @return object
*/
public function getService($name)
{
return $this->container->get($name);
}
/**
* @param string $name
*
* @return mixed
*/
public function getParameter($name)
{
return $this->container->getParameter($name);
}
/**
* @param null|string $name
*
* @return EntityManagerInterface
*/
public function getEntityManager($name = null)
{
return $this->container->get('doctrine')->getManager($name);
}
/**
* @param null|string $name
*
* @return DocumentManager
*/
public function getDocumentManager($name = 'doctrine_mongodb.odm.default_document_manager')
{
return $this->container->get($name);
}
}
If you're using more than one context file then you can access public
methods with code below(optional).
/** @var FeatureContext $mainContext */
$mainContext = $this->getMainContext();