Aspect mock не перегружает метод в кодировании

У меня такие файлы:

/src/Api.php

<?php namespace src; class Api { function apiCall() { return 'api_result'; } } 

/tests/_bootstrap.php

 <?php include __DIR__.'/../vendor/autoload.php'; // composer autoload $kernel = \AspectMock\Kernel::getInstance(); $kernel->init([ 'debug' => true, 'includePaths' => [__DIR__.'/../src'], 'cacheDir' => __DIR__ . '/aspectCache' ]); 

codeception.yml

 paths: tests: tests output: tests/_output data: tests/_data support: tests/_support envs: tests/_envs actor_suffix: Tester extensions: enabled: - Codeception\Extension\RunFailed settings: bootstrap: _bootstrap.php 

composer.json

 { "require-dev": { "codeception/aspect-mock": "*", "codeception/codeception": "^2.3" }, "autoload": { "psr-4": { "": "src/" } } } 

index.php

 <?php require_once "vendor/autoload.php"; use src\Api; $api = new Api(); echo $api->apiCall(); echo 'test'; 

/tests/acceptance/FirstCest.php

 <?php use AspectMock\Test as test; use src\Api; class FirstCest { public function frontpageWorks(AcceptanceTester $I) { $I->amOnPage('/'); test::double(Api::class, ['apiCall' => 'mock']); $I->see('mocktest'); } } 

Когда я загружаю страницу в браузере, я вижу строку 'api_resulttest'

Теперь, когда я высмеиваю функцию apiCall, вывод должен быть «mocktest».

Я выполняю команду

 php codecept.phar run --steps -d 

И тест терпит неудачу, я все еще вижу выход «api_resulttest».

Зачем? И правильно ли я использую его? https://github.com/Codeception/AspectMock здесь он не показывает, как использовать его в тестах на кодирование.

Или, пожалуйста, скажите другим способом – как я должен издеваться над вызовами api в кодексировании? То, что я хочу сделать.

Я нажал на битбакет, чтобы вы могли проверить пример: https://bitbucket.org/darius_v/codeception_mock/src

Обновление 2017 10 01 Теперь удаленный аспект издевается над моими последними фиксациями.

PhpBrowser делает запрос на ваш сайт через HTTP, поэтому макеты, установленные в тестовом коде, не влияют на код приложения.

Макеты работают в модульных тестах и ​​в функциональных тестах, если вы используете модуль фреймворка.