【发布时间】:2014-12-01 00:38:12
【问题描述】:
Mockery 有一个方法 hasKey(),它检查给定参数是否具有某个键。我想确保传递的数组有多个键。我还想断言该数组有 x 个元素。
是否有允许自定义参数期望的内置方法?我尝试使用基于给定参数返回 true 或 false 的闭包,但没有奏效。
谢谢。
编辑:
例子
$obj = m::mock('MyClass');
$obj->shouldReceive('method')->once()->with(m::hasKey('mykeyname'));
我想要做的是更深入地了解使用with() 传递给方法的内容。我想断言传递给方法的数组同时具有键a 和键b。如果我能以某种方式使用闭包来创建我自己的断言,那就太好了,比如计算数组元素的数量。
【问题讨论】:
-
您应该添加一个代码示例来可视化您想要获取的内容。你使用什么测试框架?
-
我已经更新了我的问题,谢谢。我正在使用 PHPunit,不知何故忘了提及。
-
为什么在测试中拥有这些键很重要?该方法是否对丢失的键进行错误处理?您是否对缺少预期键的情况进行了另一次测试?如果不看方法本身,很难判断您是否需要像麦芽糖提供的第一个答案那样的技术解决方案,或者您是否需要重新考虑您的测试,甚至因为复杂性而需要重新考虑方法。
标签: php unit-testing mocking phpunit mockery