behat / common-contexts
Behat 常用上下文
v1.2.0
2013-04-09 00:51 UTC
Requires
- php: >=5.3.1
- behat/behat: >=2.2.2
Suggests
This package is auto-updated.
Last update: 2024-08-28 19:03:40 UTC
README
此项目已被弃用。如果您想接管或贡献,请联系 @everzet。
Behat 的额外上下文
这些额外的上下文可以作为您功能套件的子模块使用,直接提供额外的步骤和钩子。
如何使用它们
要使用这些上下文,您只需使用所需的参数实例化它们(见构造函数参数),然后像这样传递给 useContext()
函数
<?php namespace Acme\DemoBundle\Features\Context; use Behat\Behat\Context\BehatContext; use Behat\CommonContexts\SymfonyMailerContext; use Behat\CommonContexts\DoctrineFixturesContext; /** * Feature context. */ class FeatureContext extends BehatContext { public function __construct() { // To use SymfonyMailerContext in your steps $this->useContext('symfony_extra', new SymfonyMailerContext()); // To use DoctrineFixturesContext in your steps $this->useContext('doctrine_fixtures_context', new DoctrineFixturesContext()); } /** * Example of using DoctrineFixturesContext in BeforeScenario hook * * @BeforeScenario */ public function beforeScen() { $loader = new Loader(); $this->getMainContext() ->getSubcontext('doctrine_fixtures_context') ->loadFixtureClasses($loader, array( 'Acme\Bundle\DefaultBundle\DataFixtures\ORM\LoadNewsData', 'Acme\Bundle\DefaultBundle\DataFixtures\ORM\LoadPagesData', 'Acme\Bundle\DefaultBundle\DataFixtures\ORM\LoadReviewData', 'Acme\Bundle\DefaultBundle\DataFixtures\ORM\LoadTicketData', )); /** @var $em \Doctrine\ORM\EntityManager */ $em = $this->kernel->getContainer()->get('doctrine.orm.entity_manager'); $purger = new ORMPurger(); $executor = new ORMExecutor($em, $purger); $executor->purge(); $executor->execute($loader->getFixtures(), true); } }
示例:使用 SymfonyDoctrineContext 在 Symfony 框架中重置 Doctrine
数据库模式,在场景开始之前
<?php namespace Acme\DemoBundle\Features\Context; use Behat\Behat\Context\BehatContext; use Behat\CommonContexts\SymfonyDoctrineContext; /** * Feature context. */ class FeatureContext extends BehatContext { public function __construct() { // Connects SymfonyDoctrineContext $this->useContext('symfony_doctrine_context', new SymfonyDoctrineContext); } /** * Clean database before scenario starts * * @BeforeScenario */ public function beforeScenario($event) { // Asks subcontext SymfonyDoctrineContext to rebuild database schema $this ->getMainContext() ->getSubcontext('symfony_doctrine_context') ->buildSchema($event); } }