Codeception / Codeception/AspectMock
How load more then one class from file?
- 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ả
I just try to test my Yii App with AspectMock and Codeception.
My bootstrap.php:
```
include __DIR__.'/../vendor/autoload.php'; // composer autoload
$kernel = \AspectMock\Kernel::getInstance();
$kernel->init([
'debug' => true,
'appDir' => __DIR__ . '/..',
'includePaths' => [
__DIR__.'/../src',
],
'cacheDir' => __DIR__ . '/temp/aspectMock',
'excludePaths ' => [__DIR__],
]);
```
I use it:
```
\AspectMock\Test::double(\TestForm::class, [
'validate' => false,
]);
$a = new \TestForm();
$a->prop = 123;
$I->assertEquals(false, $a->validate());
\AspectMock\Test::double(\TestForm::class, [
'validate' => true,
]);
$a = new \TestForm();
$a->prop = 123;
$I->assertEquals(true, $a->validate());
```
But AspectMock doesn't replace method validate.
I add into bootstap this:
```
include __DIR__.'/../vendor/autoload.php'; // composer autoload
$kernel = \AspectMock\Kernel::getInstance();
$kernel->init([
'debug' => true,
'appDir' => __DIR__ . '/..',
'includePaths' => [
__DIR__.'/../src',
],
'cacheDir' => __DIR__ . '/temp/aspectMock',
'excludePaths ' => [__DIR__],
]);
$kernel->loadFile(__DIR__ . '/../public/protected/models/ConfirmForm.php');
```
But now I see Error: "Class CFormModel was not found by locator"
CFormModel it's parent of my TestForm.
And I do this:
```
$kernel->loadFile(__DIR__ . '/../vendor/yiisoft/yii/framework/base/CComponent.php');
$kernel->loadFile(__DIR__ . '/../vendor/yiisoft/yii/framework/base/CModel.php');
$kernel->loadFile(__DIR__ . '/../vendor/yiisoft/yii/framework/web/CFormModel.php');
$kernel->loadFile(__DIR__ . '/../public/protected/models/ConfirmForm.php');
```
And I see error "Class CEvent was not found by locator". But class CEvent exists in CComponent.php.
In file CComponent have more then one class. And its a problem, I think.
I cant do anything with it?
Can AspectMock load more then one class from file?
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 thiết lập bootstrap.php và các lời gọi Kernel::loadFile cho CComponent.php, CModel.php, CFormModel.php và ConfirmForm.php. Tái hiện các lỗi locator còn thiếu của CFormModel và CEvent, sau đó kiểm tra cách các tệp chứa nhiều lớp được phát hiện và tải. Hoàn thành khi một tệp như CComponent.php có thể cung cấp tất cả các lớp của nó cho locator mà không xảy ra các lỗi này.
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-qa
- Loại issue
- Tính năng
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 30/100