gpt4 book ai didi

php - mock :测试参数是否是包含键/值对的数组

转载 作者:可可西里 更新时间:2023-11-01 14:01:21 24 4
gpt4 key购买 nike

我如何使用 mockery 和 hamcrest 断言当调用模拟对象的方法时,传递给它的参数之一是包含键/值对的数组?

例如,我的测试代码可能如下所示:

$mock = m::mock('\Jodes\MyClass');

$mock ->shouldReceive('myMethod')
->once()
->with(
arrayContainsPair('my_key', 'my_value')
);

我知道我可以用闭包来写它,但我只是想知道是否有另一种方法可以让它读起来稍微好一点:

$mock   ->shouldReceive('myMethod')
->once()
->with(
m::on(function($options){
return
is_array($options) &&
isset($options['my_key']) &&
$options['my_key'] == 'my_val';
})
);

最佳答案

我通过查看 Hamcrest PHP code here 找到了答案,

函数名称在文档注释中给出:

 * @factory hasEntry

所以我的代码将如下所示:

$mock   ->shouldReceive('myMethod')
->once()
->with(
hasEntry('my_key', 'my_value')
);

关于php - mock :测试参数是否是包含键/值对的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32097390/

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