私はコードテストでaspect mockを使用しようとしています。アスペクトモック 'Go ParserReflection ReflectionFile'が見つかりません
ドキュメントから、設定方法が明確ではありません。
https://github.com/Codeception/AspectMock
テスト/ _bootstrap.phpにAspectMock \カーネルを含めます。
私はそのようなファイルを持っていません。私はそれを作成する必要がありますか?私はどこにそれを含めるべきですか?
私のディレクトリ構造は以下の通りです:
test/codeception/acceptance。
私はtest/codeception/acceptanceにSummaryCest.phpファイルを持っています。
私は_bootstrap.phpファイルを持っていないので、私はSummaryCestにしようとすることを決めた - クラスを宣言する前に:
include __DIR__.'/../../../vendor/autoload.php'; // composer autoload
$kernel = \AspectMock\Kernel::getInstance();
$kernel->init([
'debug' => true,
'includePaths' => [__DIR__.'/../../../'],
'excludePaths' => [__DIR__.'../../../vendor'],
'cacheDir' => '/tmp/datamanager',
]);
私は本当にベンダーのディレクトリを除外しなければならないのか分からないが、私は、そのような見提案。それが必須であれば、おそらく私が見ていないreadmeで書かれているはずです。
includePathsには、すべてのプロジェクトファイルが表示される必要があります。
私はSummaryCest.php
public function correctSummaryCounts(AcceptanceTester $I)
{
\AspectMock\Test::double(SummaryController::class, ['get' => null]);
}
に機能を持っていると私はテスト
php codecept.phar run test/codeception/acceptance/SummaryCest.php
を実行したときに、私はあなたがこれを設定する方法を私に説明できメッセージ
==== Redirecting to Composer-installed version in vendor/codeception ====
Codeception PHP Testing Framework v2.3.5
Powered by PHPUnit 6.2.4 by Sebastian Bergmann and contributors.
PHP Fatal error: Uncaught Error: Class 'Go\ParserReflection\ReflectionFile' not found in /var/www/warehouseDataManager/vendor/codeception/aspect-mock/src/AspectMock/Intercept/BeforeMockTransformer.php:16
Stack trace:
#0 /var/www/warehouseDataManager/vendor/goaop/framework/src/Instrument/Transformer/CachingTransformer.php(124): AspectMock\Intercept\BeforeMockTransformer->transform(Object(Go\Instrument\Transformer\StreamMetaData))
#1 /var/www/warehouseDataManager/vendor/goaop/framework/src/Instrument/Transformer/CachingTransformer.php(83): Go\Instrument\Transformer\CachingTransformer->processTransformers(Object(Go\Instrument\Transformer\StreamMetaData))
#2 /var/www/warehouseDataManager/vendor/goaop/framework/src/Instrument/ClassLoading/SourceTransformingLoader.php(134): Go\Instrument\Transformer\CachingTransformer->transform(Object(Go\Instrument\Transformer\StreamMetaData))
#3 /var/www/warehouseDataManager/vendor/goaop/framework/src/Instrument/ClassLoading/SourceTransformingLoader.php(101): Go\Instrument\ClassLoading\SourceTran in /var/www/warehouseDataManager/vendor/codeception/aspect-mock/src/AspectMock/Intercept/BeforeMockTransformer.php on line 16
を取得しますか?
また、私はREADMEに
$userModel = test::double('UserModel', ['tableName' => 'my_users']);
を見ましたが、テストはしても見つかりません。だから私は少なくとも\ AspectMock \ Testを使用しようとしましたが、これは少なくとも見つかりました。
私のテスト機能を実行する前でもエラーがスローされていることに注意してください。クラス宣言の前に実行しようとしたとき
$kernel->init();
すでに同じエラーが表示されます。
は役に立ちましたか? – Naktibalda