Function parameters initialized with a class constant throw an exception
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 30/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- php
- 领域
- testing-qa
调研方向
首先,使用 issue 中的 bootstrap 和 UserModel.php 示例运行 tests/AspectMockTest.php。通过 BeforeMockTransformer.php 和 goaop 的 parser-reflection 堆栈追踪失败,尤其关注 NodeExpressionResolver 和 ReflectionEngine。完成的标准是:testDouble 示例能够在不出现 PDO locator exception 的情况下运行,同时保留类常量默认参数。
由索引模型根据 Issue 内容生成。
描述
Hello,
In the following code :
<?php
// test/bootstrap.php
require __DIR__ . '/../vendor/autoload.php'; // composer autoload
$kernel = \AspectMock\Kernel::getInstance();
$kernel->init([
'debug' => true,
'includePaths' => [
__DIR__ . '/../src',
'excludePaths' => [
__DIR__ . '/../tests'
]
]
]);
?>
<?php
// src/UserModel.php
namespace AM\Demo;
class UserModel {
public function save()
{
return("Save is not mocking\n");
}
public function get($id, $type = \PDO::FETCH_ASSOC)
{
}
}
?>
<?php
// tests/AspectMockTest.php
use AspectMock\Test as test;
use AM\Demo\UserModel;
class AspectMockTest extends \PHPUnit_Framework_TestCase
{
public function testDouble()
{
$mock = test::double('AM\Demo\UserModel', ['save' => "save is mocking"]);
}
protected function tearDown()
{
test::clean(); // remove all registered test doubles
}
}
when we launch the test we get the following exception :
PHPUnit 5.7.3 by Sebastian Bergmann and contributors.
Starting test 'AspectMockTest::testDouble'.
E 1 / 1 (100%)
Time: 1.6 seconds, Memory: 24.75MB
There was 1 error:
1) AspectMockTest::testDouble
InvalidArgumentException: Class PDO was not found by locator
/testgo/vendor/goaop/parser-reflection/src/ReflectionEngine.php:112
/testgo/vendor/goaop/parser-reflection/src/ReflectionEngine.php:127
/testgo/vendor/goaop/parser-reflection/src/ReflectionClass.php:45
/testgo/vendor/goaop/parser-reflection/src/ValueResolver/NodeExpressionResolver.php:301
/testgo/vendor/goaop/parser-reflection/src/ValueResolver/NodeExpressionResolver.php:259
/testgo/vendor/goaop/parser-reflection/src/ValueResolver/NodeExpressionResolver.php:118
/testgo/vendor/goaop/parser-reflection/src/ValueResolver/NodeExpressionResolver.php:99
/testgo/vendor/goaop/parser-reflection/src/ReflectionParameter.php:99
/testgo/vendor/goaop/parser-reflection/src/Traits/ReflectionFunctionLikeTrait.php:164
/testgo/vendor/codeception/aspect-mock/src/AspectMock/Intercept/BeforeMockTransformer.php:56
/testgo/vendor/goaop/framework/src/Instrument/Transformer/CachingTransformer.php:124
/testgo/vendor/goaop/framework/src/Instrument/Transformer/CachingTransformer.php:83
/testgo/vendor/goaop/framework/src/Instrument/ClassLoading/SourceTransformingLoader.php:134
/testgo/vendor/goaop/framework/src/Instrument/ClassLoading/SourceTransformingLoader.php:101
/testgo/vendor/goaop/framework/src/Instrument/ClassLoading/AopComposerLoader.php:136
/testgo/vendor/goaop/framework/src/Instrument/ClassLoading/AopComposerLoader.php:136
/testgo/vendor/codeception/aspect-mock/src/AspectMock/Test.php:97
/testgo/tests/AspectMockOrmTest.php:53
ERRORS!
Tests: 1, Assertions: 0, Errors: 1.
Do you have any solution or fix to help us please ?
- 主要语言
- PHP
- 星标
- 784
- 派生
- 132
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
Codeception/AspectMock 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 35/100
Codeception/AspectMock#208 · 2 条评论 · 5 个 reaction ·
-
难度 3/5 1-2 天 新手友好度 25/100
Codeception/AspectMock#206 ·
-
难度 3/5 1-2 天 新手友好度 35/100
Codeception/AspectMock#203 ·
-
难度 1/5 1 小时以内 新手友好度 35/100
Codeception/AspectMock#202 · 5 条评论 · 2 个 reaction ·
-
难度 3/5 1-2 天 新手友好度 42/100
Codeception/AspectMock#201 · 1 条评论 ·
查看 Codeception/AspectMock 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 72/100
thephpleague/commonmark#1159 ·
-
bug
难度 2/5 1-3 小时 新手友好度 76/100
awslabs/aidlc-workflows#1879 ·
维护者通常 1 天内回复
-
[Bug] The PHP file that lists DNS records truncates records to 12 characters?可能已有人在做 @sahsanu 今天认领。 未关闭bug
难度 2/5 1-3 小时 新手友好度 78/100
hestiacp/hestiacp#5769 · 2 条评论 ·
维护者通常 1 天内回复
-
bug customer-reported
难度 2/5 1-3 小时 新手友好度 82/100
MagnaCapax/PMSS#1011 ·
维护者通常 5 天内回复
-
Talk Review
难度 2/5 1-3 小时 新手友好度 66/100
socallinuxexpo/scale-drupal#351 ·