Codeception / Codeception/AspectMock

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

Đang mở
#206 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
PHP
Star
784
Fork
132
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

Не мокается обхект тест запускается хорошо но не работает

```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: ~

```

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Bắt đầu với phần thiết lập bootstrap.php và lệnh gọi AspectMock::Test::double cho app\modules\api\models\base\Methods. Tái hiện lệnh gọi Methods::tableName() với cấu hình PHP 8.1 và Codeception được nêu, sau đó so sánh giá trị trả về với kỳ vọng mock đã cấu hình. Hoàn thành có nghĩa là xác định được lý do mock không được áp dụng và ghi lại hoặc kiểm thử hành vi đã được sửa.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
php
Lĩnh vực
testing
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
25/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.