在调用原始方法时监视phpunit中的方法参数

在调用原始方法时监视phpunit中的方法参数,phpunit,Phpunit,我试图理解在调用原始方法时,使用phpunit是否可以在方法上创建spy 我已经用java做了,但是我没有看到用phpunit做这件事的方法。我只发现如果我监视方法的调用,我还需要模拟它 示例代码: $this->spy = $this->getMockBuilder('\ClassUnderTest') ->setMethods(['methodToSpy']) ->getMock(

我试图理解在调用原始方法时,使用phpunit是否可以在方法上创建spy

我已经用java做了,但是我没有看到用phpunit做这件事的方法。我只发现如果我监视方法的调用,我还需要模拟它

示例代码:

            $this->spy = $this->getMockBuilder('\ClassUnderTest')
                ->setMethods(['methodToSpy'])
                ->getMock();            

            $this->spy->expects($this->any())
                    ->method('methodToSpy')
                    ->will($this->returnCallback(array($this, 'stubMethodToSpy')));
所以在测试中,我想“监视”对实际方法“methodToSpy()”的调用,这样我就可以对传递给它的参数进行动态分析(稍后我需要在测试中使用它们)


你知道这是否可行吗?(或者可能在phpunit中是不可能的,因为它不像java那样是多线程的)

您正在寻找。

我正在尝试使用您建议的“enableProxyingToOriginalMethods”。有没有可能“听”一种方法,却嘲笑另一种?每当我将它与SetMethods一起使用时,我都会出错。真正的存根/模拟和代理不能混合使用。似乎不允许代理某些方法,但不允许代理所有方法。