코드 테스트와 함께 aspect mock을 사용하려고합니다.Aspect mock 'Go ParserReflection ReflectionFile'을 찾을 수 없습니다.
설명서에서 구성 방법이 명확하지 않습니다.
는 테스트/_bootstrap.php에 AspectMock \ 커널을 포함합니다.
나는 이러한 파일이 없습니다. 내가 만들어야하니? 어디서 그것을 포함해야합니까? codeception의
내 디렉토리 구조는 다음과 같습니다
테스트/codeception/수용.
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
가 어떻게 나를 설명 할 수 메시지가이를 구성하는 나는거야?
또한 나는
$userModel = test::double('UserModel', ['tableName' => 'my_users']);
추가 정보
에서 본 그러나 시험도 찾을 수 없습니다. 그래서 나는 적어도 \ AspectMock \ Test를 사용하려고 노력했다.테스트 기능을 실행하기 전에 오류가 발생합니다. 클래스 선언 전에 실행 해 보았습니다.
$kernel->init();
이미 동일한 오류가 나타납니다.
도움이 되셨습니까? – Naktibalda