PHP中的Mock exit()函数
对于我正在编写的库,我希望能够模拟PHP中的Mock exit()函数,php,unit-testing,reflection,abstract-syntax-tree,monkeypatching,Php,Unit Testing,Reflection,Abstract Syntax Tree,Monkeypatching,对于我正在编写的库,我希望能够模拟exitPHP函数 我尝试使用来提供exit的命名空间版本,类似于 namespace MyNamespace; function exit() { // my mocked version of the function } 但是这给解析器带来了问题,它抛出了以下ParseError:语法错误,意外的'exit'(T_exit),应该是'(') 有没有其他方法可以模拟内置函数而不引起解析问题?我是否应该尝试用类似的东西修改AST?根据评论,我猜模拟
exit
PHP函数
我尝试使用来提供exit
的命名空间版本,类似于
namespace MyNamespace;
function exit()
{
// my mocked version of the function
}
但是这给解析器带来了问题,它抛出了以下ParseError
:语法错误,意外的'exit'(T_exit),应该是'('
)
有没有其他方法可以模拟内置函数而不引起解析问题?我是否应该尝试用类似的东西修改AST?根据评论,我猜模拟语言构造是不可行的
测试
exit()的步骤
我最终用exec
生成了其他进程,并断言它们的输出和存在状态exit是一个语言构造,你不能模仿它。exit是一个语言构造,而不是函数。因此,我认为你无法替换它。我认为,即使这个问题的前提是一个有缺陷的假设,它仍然可以确实应该得到+1,特别是考虑到php标记中的信噪比。