所以我不知道是否有人问这个但是......
对于单元测试,我想创建一个行为类似于数组的模拟对象。不返回数组。我不能只使用数组,因为数组需要是'test'类型。
所以不知怎的......我希望将模拟的类型测试对象设置为数组('blah','blah');
我想这样做的原因是因为我将对象传递给另一个对象的类型'test'受限参数。
答案 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