PHPUnit:是否可以将模拟注入不在函数中的代码中?

PHPUnit: is it possible to inject a mock into code not in a function?

假设我有一些 PHP 函数外的代码:

<?php
// some code
SomeClass::some_function();
?>

是否可以模拟 some_function

目前我的测试代码如下:

$mock = $this->getMockBuilder('SomeClass')
             ->setMethods(array('some_function'))
             ->getMock();
$mock->expects($this->once())
     ->method('some_function');

但我不知道如何将其注入到之前的代码中。有可能吗?如果不是,应该如何测试这样的东西?

不,这不可能。

要测试此代码,您实际上需要在浏览器中调用该页面并确保一切正常。这样的代码不会被嘲笑。像这样的代码测试更符合 "integration" 测试。

要测试此代码,您需要一个额外的工具以及 PHPUnit,例如 Selenium。 https://www.sitepoint.com/using-the-selenium-web-driver-api-with-phpunit/