Codeception / Codeception/AspectMock
Non-existent functions can't be mocked since 2.1.0
- Dominant language
- PHP
- Stars
- 784
- Forks
- 132
- PR merge metrics
- No merged PRs in 30d
Description
The problem was introduced here:
https://github.com/Codeception/AspectMock/pull/133/files#diff-50b2697c4aa86740dcae323b3d7ebe44R44
The `placeOptionalAndReferenceFunction` method uses `ReflectionFunction` which throws an exception if a non-existent function name is passed:
> [ReflectionException] Function somefunc() does not exist
Before that change it worked fine when trying to mock a non-existent function. This is a valid use case for a plugin architecture where you may not have desired functions in a test environment.
Can it be like this, for example:
```php
if (function_exists($function)) {
$this->placeOptionalAndReferenceFunction($namespace, $function);
}
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the placeOptionalAndReferenceFunction method and the referenced pull request diff, focusing on its ReflectionFunction call. Confirm the behavior for a non-existent function, then verify that mocking such a function no longer raises a ReflectionException.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- testing
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 45/100