rezzza / mock-extension

[Deprecated] Add possibility to define several mock engine for your behat tests
5 stars 3 forks source link

Warning: Missing argument 1 for mock #13

Closed vittore closed 8 years ago

vittore commented 8 years ago

I'm trying to make a service mock:

$this->mocker->mockService(
            'manager.mikrotik',
            new AtoumAdapter(
                '\MyBundle\Services\MikrotikManager'
            )
        );

I get this error:

Warning: Missing argument 1 for mock\MyBundle\Services\MikrotikManager::__construct(), called in vendor/rezzza/mock-extension/src/Adapter/AtoumAdapter.php on line 45 and defined in vendor/atoum/atoum/classes/mock/generator.php(183) : eval()'d code line 22

Where is my mistake?

Thanks in advance. v.

shouze commented 8 years ago

@vittore Hi, your MikrotikManager class looks like to need an argument in its constructor no?! So... you probably need to orphanize your constructor like that:

$this->mocker->mockService(
            'manager.mikrotik',
            new AtoumAdapter(
                '\MyBundle\Services\MikrotikManager',
                function ($generator) {
                    $generator->orphanize('__construct');
                }
            )
        );
vittore commented 8 years ago

Perfect! Work.

v.

2015-10-30 17:55 GMT+01:00 Sébastien HOUZÉ notifications@github.com:

@vittore https://github.com/vittore Hi, your MikrotikManager class looks like to need an argument in its constructor no?! So... you probably need to orphanize your constructor like that:

$this->mocker->mockService( 'manager.mikrotik', new AtoumAdapter( '\MyBundle\Services\MikrotikManager', function ($generator) { $generator->orphanize('__construct'); } ) );

— Reply to this email directly or view it on GitHub https://github.com/rezzza/mock-extension/issues/13#issuecomment-152585700 .

http://www.zen.pn.it