phpspec - 检查是否使用特定参数(对象)调用了方法

时间:2017-02-27 20:11:09

标签: php phpspec

我正在编写一个PHPspec测试,希望测试一个方法是否使用正确的参数调用(如果是对象)。

我在我的规范中做了类似这样的事情(伪代码):

function it_some_test(MyService $myservice) {
    $object = new MyDomainObject();
    $object->setPropertyX("some value")

    $myservice->getSomething($object)->shouldBeCalled();

}

该对象只是我服务中创建的DTO。它在原始服务中创建的方式完全相同。只是某些属性的值基于相同的逻辑而改变。这就是我想测试的内容。

问题是我的测试总是失败,因为它说$对象与它的异常不同但它们具有完全相同的属性值。

PHPspec如何比较对象?如果我传递Argument :: any()而不是它可以工作,但我需要测试作为具有特定值的属性传递的对象。

1 个答案:

答案 0 :(得分:0)

我发现了这个问题。我在调用测试中的真实方法之前调用了方法 - > shouldBeCalled()。改变顺序,它现在有效。