我有一个类作为成员变量的静态类的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
编辑:我正在使用的框架将模拟实例作为字符串
返回答案 0 :(得分:0)
如果只将mock类作为字符串,请创建它的实例。
SMALL = RAND_NUM;
如果您只想调用静态方法,请使用call_user_func():
$this->my_static_class = new $mock_of_static_class_as_string();