gpt4 book ai didi

php - 在 php mockery 上获取不同的连续值

转载 作者:行者123 更新时间:2023-12-05 00:39:48 25 4
gpt4 key购买 nike

TLDR;使用相同参数调用 mock shouldReceive('method)` 时,如何第一次获取 value1 和第二次获取 value2

假设我有一个 $order 对象,该对象使用 getState() 方法实现此签名。

interface Order {
public function getState();
}

现在,在单元测试中,我想使用 mockery 来模拟 $order 对象,以便在调用 getState

  • 第一次返回 initialized
  • 第二次返回处理

好吧,我知道对于使用 ...->with($param1)->andReturn... 的参数返回值不同的情况,可以这样做。

加上 withConsecutive 似乎是在 phpunit 上做的方式。我如何在 mock 中实现这一点?我在 mockery doc 上找不到任何相关信息也不是在stackoverflow上。

谢谢。

最佳答案

来自 Declaring Return Value Expectations 部分:

It is possible to set up expectation for multiple return values. By providing a sequence of return values, we tell Mockery what value to return on every subsequent call to the method:

$mock = \Mockery::mock('MyClass');
$mock->shouldReceive('name_of_method')
->andReturn($value1, $value2, ...)

The first call will return $value1 and the second call will return $value2.

关于php - 在 php mockery 上获取不同的连续值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55027150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com