Codeception / AspectMock

The most powerful and flexible mocking framework for PHPUnit / Codeception.
MIT License
790 stars 129 forks source link

basic mock is not working #164

Open Chig8 opened 6 years ago

Chig8 commented 6 years ago

under objects/system no name space

`class UserCheck
{
    public $name;
    public function setName($name){
        return $this->name = $name;
    }
    public function save(){
        return 10;
    }
    public function getName(){
        return $this->name;
    }
}`

under tests\codeception\unit\objects\system

` class EmployeeTest {
       function testUserCreate()
       {
           $user = test::double('UserCheck', ['save' => null])->make();
          $this->assertEquals('null', $user->save());
      }
}`

composer.json

`       "codeception/aspect-mock": "2.2.0",
        "phpunit/phpunit": "5.7.27",
`

tests/codeception/_bootstrap.php

`require __DIR__.'/../../../../tools/tests/vendor/autoload.php';

$kernel = \AspectMock\Kernel::getInstance();

// https://github.com/Codeception/AspectMock#customization
$kernel->init([
    'debug' => true,
    'cacheDir' => __DIR__.'/_cache', // Cache is disabled because it wasn't being flushed reliably when the code was changed.
    'appDir' => __DIR__.'/../../../../tools/tests/vendor',
    'includePaths' => [
        __DIR__.'/../../objects', // Mock everything in the objects dir
    ]

]);`

error

` codeception/unit/objects/system/EmployeeTest.php:testUserCreate
Failed asserting that 10 matches expected 'null'.
`
vdebes commented 5 years ago

It looks like I have the same problem here https://github.com/vdebes/CodeceptionTesting/blob/master/tests/unit/DummyTest.php (check methods with @broken annotation)

erikverheij commented 5 years ago

I'm having the same issue. Locking goaop/framework to =2.2.0 fixed the issue for us for the meantime.