/** * Runs the test case and collects the results in a TestResult object. * If no TestResult object is passed a new one will be created. * This method is run for each test method in this class * * @param PHPUnit_Framework_TestResult $result * @return PHPUnit_Framework_TestResult * @throws InvalidArgumentException */ public function run(PHPUnit_Framework_TestResult $result = NULL) { if (!empty($this->fixtureManager)) { $this->fixtureManager->load($this); } $result = parent::run($result); if (!empty($this->fixtureManager)) { $this->fixtureManager->unload($this); } return $result; }
/** * Not Implemented * * @param PHPUnit_Framework_Test $test * @return void */ public function startTest(PHPUnit_Framework_Test $test) { $test->fixtureManager = $this->_fixtureManager; if ($test instanceof CakeTestCase) { $this->_fixtureManager->fixturize($test); $this->_fixtureManager->load($test); } }
// features/support/hooks.php App::uses('CakeTestCase', 'TestSuite'); class BddAllFixture extends CakeTestCase { // (1) public $fixtures = ['app.post', 'plugin.users.user']; } $hooks->beforeSuite(function ($event) { // Do something before whole test suite }); $hooks->afterSuite(function ($event) { // Do something after whole test suite }); $hooks->beforeFeature('', function ($event) { // do something before each feature }); $hooks->afterFeature('', function ($event) { // do something after each feature }); $hooks->beforeScenario('', function ($event) { // (2) // do something before each scenario $manager = new CakeFixtureManager(); $fixture = new BddAllFixture(); $manager->fixturize($fixture); $manager->load($fixture); }); $hooks->afterScenario('', function ($event) { // do something after each scenario });