Codeception / Codeception/AspectMock

AspectMock не мокает объект

オープン
#206 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
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() の呼び出しを再現し、その後、返された値を設定されたモックの期待値と比較します。モックが適用されない理由を特定し、修正後の動作を文書化またはテストできれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
php
領域
testing
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。