代码之家  ›  专栏  ›  技术社区  ›  chx

只有这个和预言无关?

  •  2
  • chx  · 技术社区  · 9 年前

    所以我在PhpUnit测试中得到了这个:

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

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

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

    但我怎么能对预言说“没有别的”呢?

    1 回复  |  直到 9 年前
        1
  •  2
  •   Wouter J schlicki    9 年前

    如果你打电话给预言 reveal() 在对象预言器上,对象立即被假定为虚拟对象。这意味着它会回来 null 对于对象的所有公共方法,它都是预言。

    然而,只要你添加一个方法预言家(例如 shouldBeCalled...() 呼叫或 willReturn() 调用),则返回的对象将是模拟对象或存根对象。在这种情况下,只有配置的调用才能工作 所有其他呼叫 被执行的将触发失败。

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

    推荐文章