我们遇到了一个间歇性问题,实例化对象的变量似乎在一行或两行代码中随机变为空。
例如
class Club {
}
class Foo {
public function Bar(Club $club)
{
// Do something
}
}
$club = new Club();
(new Foo())->Bar($club);
通过错误Argument 1 passed to Foo::bar() must be an instance of Club, null given
这会在运行单元测试时特别普遍,但看到它有时会出现在实时请求中。
甚至尝试使用嘲弄来绕过俱乐部课程中的任何可能的问题
$club = Mockery::mock(Club::class);
(new Foo())->Bar($club);
这是在Ubuntu 14.04.3 LTS和PHPUnit 5.4.7上运行PHP 7.0.12-1
有人遇到过类似的问题吗?或任何有关如何调试此类问题的想法(特别是考虑到它的间歇性)