嘲讽。检查第 100 次调用的参数

Posted

技术标签:

【中文标题】嘲讽。检查第 100 次调用的参数【英文标题】:Mockery. Check parameter on the 100-th call 【发布时间】:2018-12-23 04:49:30 【问题描述】:

我正在使用 MockeryLaravel 5.6。目前我需要检查第 100 次通话中传递了什么。

这是我想要执行的示例检查。

Mockery::mock(ShopifySDK::class)
       ->shouldReceive('get')
       ->with(['key' => 'val']) //I need to check passed array on the 100-th call of the "get" method
       ->getMock();

有可能吗?如果是,那该怎么做呢?

【问题讨论】:

不确定***.com/questions/50900843/… 是否有帮助,但值得一试。 @NigelRen 看起来像,但还有其他......更“原生”的方式吗? 【参考方案1】:

感谢@NigelRen 这是我找到的解决方案。有点丑,但对我来说已经足够了。

Mockery::mock(ShopifySDK::class)
       ->shouldReceive('get')
       ->withArgs(function ($params) 
           static $counter = 0;

           if ($counter++ === 100) 
               //checks...

               return true;
           

           return false;
       )->getMock();

【讨论】:

以上是关于嘲讽。检查第 100 次调用的参数的主要内容,如果未能解决你的问题,请参考以下文章

使用 forEach 时避免回调多次调用

求Loadrunner Vuser分配的问题?

分割字符串

如何确保没有人可以两次调用api

php函数多个参数实现传参任意顺序?

检查正确数量的参数