Codeception / Codeception/AspectMock
basic mock is not working
- Dominant language
- PHP
- Stars
- 784
- Forks
- 132
- PR merge metrics
- No merged PRs in 30d
Description
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'.
`
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with tests/codeception/unit/objects/system/EmployeeTest.php:testUserCreate and reproduce the failure using the versions in composer.json. Read tests/codeception/_bootstrap.php and the UserCheck example under objects/system to determine why the basic mock does not override save(); done means the test passes with save() returning null.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- testing
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100