public function testGenerator() { \QA\SoftMocks::redefineGenerator(self::class, 'exampleGenerator', function () { (yield 3); (yield 4); (yield 5); }); $all_values = []; foreach ($this->exampleGenerator() as $v) { $all_values[] = $v; } $this->assertEquals([3, 4, 5], $all_values); }
public function originalFunction($name) { SoftMocks::restoreFunction($name); }
public static function revertMocks() { \QA\SoftMocks::restoreAll(); }
<?php require_once dirname(__DIR__) . '/vendor/badoo/soft-mocks/src/bootstrap.php'; \QA\SoftMocks::setPhpunitPath('/vendor/phpunit/'); require_once \QA\SoftMocks::rewrite(dirname(__DIR__) . '/vendor/autoload.php'); require_once \QA\SoftMocks::rewrite(__DIR__ . '/unit/BaseLoggerTestCase.php');
<?php require_once dirname(__DIR__) . '/vendor/badoo/soft-mocks/src/bootstrap.php'; \QA\SoftMocks::setRewriteInternal(true); \QA\SoftMocks::setPhpunitPath('/vendor/phpunit/'); require_once \QA\SoftMocks::rewrite(dirname(__DIR__) . '/vendor/autoload.php'); require_once \QA\SoftMocks::rewrite(__DIR__ . '/unit/BaseLoggerTestCase.php'); require_once \QA\SoftMocks::rewrite(__DIR__ . '/CodeCoverageFilter.php'); require_once \QA\SoftMocks::rewrite(__DIR__ . '/PHPUnitCommand.php'); // inject into phpunit class_exists(\PHPUnit_Util_Fileloader::class); \QA\SoftMocks::init();
<?php require_once 'src/bootstrap.php'; require_once \QA\SoftMocks::rewrite('common.php'); require_once \QA\SoftMocks::rewrite('vendor/autoload.php'); // should be included rewritten if you want redefine external libs require_once \QA\SoftMocks::rewrite('SoftMocksExample.php'); echo "Result before applying SoftMocks = " . var_export(SoftMocksExample::run(), 1) . PHP_EOL; SoftMocksExample::applyMocks(); echo "Result after applying SoftMocks = " . var_export(SoftMocksExample::run(), 1) . PHP_EOL; SoftMocksExample::revertMocks(); echo "Result after reverting SoftMocks = " . var_export(SoftMocksExample::run(), 1) . PHP_EOL;
public function removeFileFromWhitelist($filename) { $filename = SoftMocks::rewrite($filename); parent::removeFileFromWhitelist($filename); }
<?php /* You must preload PHP Parser before initializing Soft Mocks so that it does not try to rewrite it */ $php_parser_dir = dirname(__DIR__) . "/vendor/PHP-Parser/lib/PhpParser/"; require $php_parser_dir . "Autoloader.php"; \PhpParser\Autoloader::register(true); $out = []; exec('find ' . escapeshellarg($php_parser_dir) . " -type f -name '*.php'", $out); foreach ($out as $f) { require_once $f; } /* Soft Mocks init */ require_once dirname(__DIR__) . "/src/QA/SoftMocks.php"; \QA\SoftMocks::init(); \QA\SoftMocks::setPhpunitPath('/phpunit.phar/');