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/
假设我有一些 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/