我正在编写一个PHPspec测试,希望测试一个方法是否使用正确的参数调用(如果是对象)。
我在我的规范中做了类似这样的事情(伪代码):
function it_some_test(MyService $myservice) {
$object = new MyDomainObject();
$object->setPropertyX("some value")
$myservice->getSomething($object)->shouldBeCalled();
}
该对象只是我服务中创建的DTO。它在原始服务中创建的方式完全相同。只是某些属性的值基于相同的逻辑而改变。这就是我想测试的内容。
问题是我的测试总是失败,因为它说$对象与它的异常不同但它们具有完全相同的属性值。
PHPspec如何比较对象?如果我传递Argument :: any()而不是它可以工作,但我需要测试作为具有特定值的属性传递的对象。
答案 0 :(得分:0)
我发现了这个问题。我在调用测试中的真实方法之前调用了方法 - > shouldBeCalled()。改变顺序,它现在有效。