gpt4 book ai didi

PHP 模拟最终类

转载 作者:IT王子 更新时间:2023-10-29 01:16:14 31 4
gpt4 key购买 nike

我正在尝试模拟一个 php final class 但是因为它被声明为 final 我一直收到这个错误:

PHPUnit_Framework_Exception:类“Doctrine\ORM\Query”被声明为“final”并且不能被模拟。

有没有办法在不引入任何新框架的情况下,只为我的单元测试绕过这个 final 行为?

最佳答案

既然你提到你不想使用任何其他框架,你只给自己一个选择:uopz

uopz 是 runkit-and-scary-stuff 类型的黑魔法扩展,旨在帮助 QA 基础设施。

uopz_flags是一个函数,可以修改函数、方法和类的标志。

<?php
final class Test {}

/** ZEND_ACC_CLASS is defined as 0, just looks nicer ... **/

uopz_flags(Test::class, null, ZEND_ACC_CLASS);

$reflector = new ReflectionClass(Test::class);

var_dump($reflector->isFinal());
?>

会产生

bool(false)

关于PHP 模拟最终类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32213542/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com