我正在尝试测试一个从另一个方法获取数据的类方法。
所以我做了这个:
function it_should_return_json_file_as_array()
{
$this->exist()->willReturn(true);
$this->read()->willReturn("{\"key\":\"value\"}");
$this->getContent()->shouldHaveKeyWithValue('key', 'value');
}但是当我启动phpspec run的时候,我得到了这样的信息:
[InvalidArgumentException]
String "" is not a valid classname.
Please see reference document: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md 怎么一回事?
发布于 2015-04-22 11:07:31
您所指定的类的存根方法是不可能的,也不可能是故意的。
PhpSpec试图告诉您,您决定设计的方式有问题。
请参阅我最喜欢的十大PhpSpec限制-限制#2
在使用继承扩展行为的情况下,这种限制会变得非常明显。我们继承一个类,并希望添加一个新方法,该方法在内部将某些行为委托给父类方法。我们不能模仿或存根该方法。这使我一次又一次地支持组合而不是继承,这是OO设计中的黄金原则。在继承是合理的少数情况下,我们可以将可重用行为隔离到一个单独的对象中,并在父对象中使用组合,从而允许我们用一个double替换协作者。
也可以阅读部分嘲弄。
https://stackoverflow.com/questions/29781405
复制相似问题