【发布时间】:2015-02-14 04:25:03
【问题描述】:
我有一个类,它有一个静态类的 Mock 实例作为成员变量,当我尝试引用静态方法时,我对静态类成员的访问不正确:
class Foo {
private my_static_class;
public testmethod() {
$this->my_static_class = mock_of_static_class;
$this->my_static_class::static_method(); // Incorrect access to static class member
}
}
使用 -> 而不是 :: 似乎也没有解决问题,我最终得到了
Call to a member function static_method() on a non-object
编辑:我使用的框架将模拟实例作为字符串返回
【问题讨论】:
-
你是如何创建静态类的模拟的?
-
使用 Box 的 Shmock 框架。我发现 shmock 仅作为字符串返回。
-
你能发布你是如何创建你的模拟的吗?我不认为事情的发生完全像你期望的那样。如果返回的模拟只是一个字符串,你应该得到解析错误而不是你正在发生的事情。