如何使用PHPUnit测试静态函数调用
例如,如何测试Symfony如何使用PHPUnit测试静态函数调用,php,symfony,static,mocking,phpunit,Php,Symfony,Static,Mocking,Phpunit,例如,如何测试SymfonyRequest类中的静态createFromGlobals方法 我看过这个例子,但它只适用于调用方和被调用方在同一个类中的情况 $class::staticExpects($this->any()) ->method('helper') ->will($this->returnValue('bar')); 做这件事的首选方法是什么。举个嘲弄的例子也可以。 他们谈论的是一个没有示例的类别名mock。如果您在代码中使用静态
Request
类中的静态createFromGlobals
方法
我看过这个例子,但它只适用于调用方和被调用方在同一个类中的情况
$class::staticExpects($this->any())
->method('helper')
->will($this->returnValue('bar'));
做这件事的首选方法是什么。举个嘲弄的例子也可以。
他们谈论的是一个没有示例的类别名mock。如果您在代码中使用静态调用,那么根据静态调用实际执行的操作,您会遇到一些困难。不可能嘲笑它 取决于你在做什么,你甚至可能不想嘲笑它。例如,如果您正在测试控制器,则不需要模拟它。通过任何方法发布适当的方法(GET、Post等),并创建请求对象。仅替换系统外部的任何服务(数据库等),并确保您的响应正确。这个测试并不是严格意义上的“单元”测试,但它表明您的所有类都在一起正常工作
如果正在创建,模型中的此对象会在某处更改设计,以便传入
请求
对象。然后,您可以使用正确的行为创建一个mockRequest
,而无需尝试模拟静态方法调用。谢谢,我理解,然后集中精力进行功能测试