PHPUnit:我想创建一个'是'数组的模拟对象。不返回数组

时间:2014-08-09 00:19:20

标签: php unit-testing phpunit

所以我不知道是否有人问这个但是......

对于单元测试,我想创建一个行为类似于数组的模拟对象。不返回数组。我不能只使用数组,因为数组需要是'test'类型。

所以不知怎的......我希望将模拟的类型测试对象设置为数组('blah','blah');

我想这样做的原因是因为我将对象传递给另一个对象的类型'test'受限参数。

1 个答案:

答案 0 :(得分:1)

您可以使用 ArrayObject

class Test extends ArrayObject或构建一个扩展ArrayObject的Mock类。

这为您提供了一个带有数组功能的类型为test的对象。

当您使用ArrayObject :: STD_PROP_LIST时,您可以使用它,就像使用普通数组一样。

$a = new Test(array(), ArrayObject::STD_PROP_LIST);
$a['blah'] = 'blah';

请参阅此处获取STD_PROP_LIST示例:https://stackoverflow.com/a/16619183/1163786