Skip to content

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

Open
@skugarev

Description

@skugarev

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

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions