Codeception / Codeception/AspectMock
AspectMock не мокает объект
- Dominant language
- PHP
- Stars
- 784
- Forks
- 132
- PR merge metrics
- No merged PRs in 30d
Description
Не мокается обхект тест запускается хорошо но не работает
```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: ~
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the bootstrap.php setup and the AspectMock::Test::double call for app\modules\api\models\base\Methods. Reproduce the call to Methods::tableName() under the PHP 8.1 and Codeception configuration shown, then compare the returned value with the configured mock expectation. Done means identifying why the mock is not applied and documenting or testing the corrected behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- testing
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100