我完全不熟悉PHP。我做了一件事:
class Foo
{
@BeforeSuite
public static function prePare()
{
$obj = new Foo;
$obj->iVisit("https://google.com");
}
}
public function iVisit($url)
{
if ($url != null) {
$this -> getSession() -> visit($url);
}
else {
throw new PendingException();
}
}
}
但它抛出了这个错误:
PHP致命错误:在非对象
上调用成员函数getSession()
编辑:
我的方案是在其他测试用例开始运行之前加载URL。所以我选择在@beforesuite
函数中加载url,但在behat中,@beforesuite
是一个静态函数。我不得不从静态函数调用iVisit方法。
这个问题还有其他解决办法吗?
答案 0 :(得分:2)
它不是一个php概念,它只是一个编程概念。
您不能在任何地方调用非静态方法,只是因为您需要创建实例(或引用已经存在的实例 )该类调用该函数。