Mockery 文档有模拟类及其成员的示例,但我没有看到任何有关模拟包含函数的详细信息。我想模拟wp_send_json()由/wp-includes/functions.php. 可以使用 Mockery 或任何其他 php 库。
这是 的用法wp_send_json()。覆盖此函数将允许我对输入值运行 json_encode() ,然后将其返回以进行干净的单元测试:
function handleAjax() {
$name = $_POST['name'];
return wp_send_json($name);
}
在我的测试套件中,我这样称呼它:
use \Symfony\Component\HttpFoundation\Request;
class UtilitiesTest extends \Codeception\TestCase\WpTestCase {
_before() {
}
testHandleAjax() {
$request = Request::create(
null,
'POST',
['name' => 'John']
);
$request->overrideGlobals(); // $_POST is now mocked
$result = handleAjax();
$this->assertEquals('John', $result);
}
}
如何wp_send_json()模拟/覆盖无类函数以进行测试?
肥皂起泡泡