Codeception / Codeception/AspectMock

Error when mocking built-in function with pass-by-reference argument and argument with default value (PHP 8)

Open
#201 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
PHP
Stars
784
Forks
132
PR merge metrics
No merged PRs in 30d

Description

This is for AspectMock 4.1.1.

During our migration from PHP 7.4 to PHP 8.1, we've encountered this pattern a few times:

When our PHP-Unit tests mock a PHP built-in function that has at least one argument passed by reference and one argument with a default value, the mock fails with the error `ParseError: syntax error, unexpected token "=", expecting ")"`.

The stack track looks like this:

```
/tmp/flockoipmSG:4
/petabox/www/common/vendor/codeception/aspect-mock/src/AspectMock/Core/Mocker.php:275
/petabox/www/common/vendor/codeception/aspect-mock/src/AspectMock/Core/Registry.php:38
/petabox/www/common/vendor/codeception/aspect-mock/src/AspectMock/Test.php:248
```

Examining the temporary file reveals the problem:
```
$ cat /tmp/flockoipmSG

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.