Codeception / Codeception/AspectMock
AspectMock не мокает объект
- 主要语言
- PHP
- 星标
- 784
- 派生
- 132
- PR 合并指标
- 30 天内没有已合并 PR
描述
Не мокается обхект тест запускается хорошо но не работает
```php
bootstrap.php
init([
'debug' => true,
'appDir' => 'app',
'cacheDir' => __DIR__ . '/../runtime/myapp',
'includePaths' => [
__DIR__.'/..'
],
'excludePaths' => [__DIR__]
]);
$kernel->loadFile(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
Yii::setAlias('@tests', dirname(__DIR__));
Yii::setAlias('@app', dirname(dirname(__DIR__)));
сам код
класс который мокаю
[
'title' => 'Имя',
'type' => 'string',
'identify' => true,
'maxLength' => 255,
],
'description' => [
'title' => 'Описание',
'type' => 'text',
],
];
public static $permanentlyDelete = true;
protected static $hiddable = false;
protected static $modelTitle = 'Методы API';
protected static $recordTitle = 'метод API';
protected static $accusativeRecordTitle = 'метод API';
protected static $readonly = true;
/**
* @inheritdoc
*/
public static function tableName()
{
return 'api_methods';
}
/**
* @inheritdoc
*/
public function rules()
{
return [];
}
}
$methods = \AspectMock\Test::double('app\modules\api\models\base\Methods', [
'tableName' => 34
]);
$n2 = Methods::tableName();
//$methods->verifyInvoked('tableName');
print_r($n2); печатает api_methods вместо 34
exit;
```
### Details
* Codeception version:
* PHP Version: 8.1
* Operating System: windiws
```yml
codeception.yml
namespace: Tests
support_namespace: Support
paths:
tests: tests
output: tests/_output
data: tests/Support/Data
support: tests/Support
envs: tests/_envs
settings:
bootstrap: ../_bootstrap.php
error_level: E_ALL & ~E_STRICT & ~E_DEPRECATED
memory_limit: 1024M
colors: true
actor_suffix: Tester
extensions:
enabled:
- Codeception\Extension\RunFailed
modules:
config:
Yii2:
configFile: 'config/test-local.php'
cleanup: false
# Codeception Test Suite Configuration
#
# Suite for unit or integration tests.
Unit.suite.yml
actor: UnitTester
modules:
enabled:
- Asserts
- Yii2:
part: [orm]
- Db:
dsn: 'mysql:host=db;dbname=lkp'
user: 'root'
password: 'lkp_dev_passwd'
step_decorators: ~
```
贡献指南
这个仓库没有索引到贡献指南
调研方向
从 bootstrap.php 的设置以及针对 app\modules\api\models\base\Methods 的 AspectMock::Test::double 调用开始。在所示的 PHP 8.1 和 Codeception 配置下重现对 Methods::tableName() 的调用,然后将返回值与配置的 mock 预期进行比较。完成的标准是确定 mock 未被应用的原因,并记录或测试修正后的行为。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- php
- 领域
- testing
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 25/100