Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
skugarev opened this issue Jul 7, 2023 · 0 comments
Open

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

skugarev opened this issue Jul 7, 2023 · 0 comments

Comments

@skugarev
Copy link

skugarev commented Jul 7, 2023

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

bootstrap.php

<?php

defined('YII_ENV') or define('YII_ENV', 'test');
defined('YII_DEBUG') or define('YII_DEBUG', true);

require __DIR__ .'/../vendor/autoload.php';


$kernel = AspectMock\Kernel::getInstance();
$kernel->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__)));


сам код

класс который мокаю

<?php

namespace app\modules\api\models\base;

use app\base\db\ActiveRecord;

class Methods extends ActiveRecord
{
    static protected $structure = [
        'name' => [
            '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
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: ~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant