php - PHP 中的模拟 exit() 函数

标签 php unit-testing reflection abstract-syntax-tree monkeypatching

对于我正在编写的库,我希望能够模拟 exit PHP 函数。

我尝试使用 php-mock提供 exit 的命名空间版本,例如

namespace MyNamespace;

function exit()
{
    // my mocked version of the function
}

但这会给解析器带来问题,它会抛出以下 ParseError:syntax error, unexpected 'exit' (T_EXIT), expecting '('.

有没有其他方法可以在不引起解析问题的情况下模拟内置函数?我应该尝试用类似 BetterReflection 的东西修改 AST ?

最佳答案

根据评论,我猜模拟语言构造是不可行的。

为了测试 exit(),我最终使用 exec 生成了其他进程,并对它们的输出和存在状态进行断言

关于php - PHP 中的模拟 exit() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42781497/

相关文章:

pointers - 通过反射创建类型并通过引用传递可以编译但不起作用

php - 如果未预加载,Yii Bootstrap 将无法工作

php - Neo4j 中的密码限制包括重复行

c# - crdb_adoplus.dll单元测试解决方案

unit-testing - 是否有内存中的 SQS?

java - 为java http客户端编写Mock类

php pdo csv 文件写入数据库

php - 函数第一次运行时在 mysql 中更新了错误的数据

vb.net - 仅反射(reflect) VB.NET 上派生类的子属性

Java 反射 - 获取通用接口(interface)中 T 的实际类型<T>