gpt4 book ai didi

PHPUnit 测试套件 - 无法重新声明类模拟和具体类

转载 作者:可可西里 更新时间:2023-11-01 13:18:21 26 4
gpt4 key购买 nike

这是我的问题。

我有一个正在测试几个类的测试套件。我的类(class)都使用依赖注入(inject)。

我有一个名为 scheduleHandler 的类,它通过了所有测试。然后我的另一个类 ruleHandler 有一个方法需要一个 scheduleHandler 的实例。我不想传入真正的 scheduleHandler,所以我尝试创建一个模拟 scheduleHandler 来注入(inject)。

我遇到的问题是因为 scheduleHandler 类是在 ruleHandler 上面的套件中测试的,当创建模拟时我得到:-

PHP Fatal error:  Cannot redeclare class scheduleHandler

如果我不使用测试套件,而是单独运行测试,一切都很好。

有人知道解决这个问题的方法吗?

最佳答案

到目前为止我最好的猜测:

var_dump(class_exists('scheduleHandler', false)); 

为您返回false。这意味着该类还不存在。现在,如果当 phpunit 试图从它扩展时自动加载器没有找到该类,phpunit 将创建它自己的类。

如果您稍后在路上然后需要从某个地方的 REAL 类,这些类将发生冲突。

要对此进行测试,请确保在创建模拟对象之前需要真正的 scheduleHandler 类。

关于PHPUnit 测试套件 - 无法重新声明类模拟和具体类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7742390/

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