预言只有这个,仅此而已?

Only this and nothing more with Prophecy?

所以我在 PhpUnit 测试中有这个:

$alias_manager = $this->prophesize(AliasManagerInterface::class);
$alias_manager->cacheClear($source)->shouldBeCalledTimes(1);

我想告诉 Prophecy,这就是调用别名管理器时应该使用的所有方法,不应调用其他方法,也不应使用任何其他参数调用此方法。后者我可以

$alias_manager->cacheClear(Argument::any())->shouldBeCalledTimes(1);

但是 "nothing else" 预言怎么说?

使用 Prophecy,如果您立即对对象 prophet 调用 reveal(),该对象将被假定为虚拟对象。这意味着它将 return null 对于它所预言的对象的所有 public 方法。

但是,一旦您添加了一个方法 prophet(例如,通过执行 shouldBeCalled...() 调用或 willReturn() 调用),returned 对象将是模拟对象或存根对象。在这种情况下,只有配置的调用会起作用,所有其他执行的调用 将触发失败。

换句话说:你什么都不用做,这是标准行为。