如何使用PHPUnit测试我的Wordpress插件中不属于类的函数?这些功能用作模板标签。
编辑1
我从10up开始使用WP_Mock。
我的wordpress插件从单个文件中提供了一些模板标签,我正在尝试对其进行测试。在下面的示例中,我正在测试a(),并且我想模拟b(),它由a()调用。
我收到一条错误消息Call to undefined function c()
,因此看来我尝试用WP_Mock :: userFunction模拟b()失败。
这是预期的行为吗?
我该如何对b()进行双重测试?
// my-plugin-template-tags.php
<?php
function a(){
$val = b();
return 'bar';
}
function b(){
c();
}
// TemplateTagsTest.php
<?php
declare(strict_types=1);
use PHPUnit\Framework\TestCase;
final class TemplateTagsTest extends TestCase
{
public function test_a()
{
\WP_Mock::userFunction( 'b', array(
'return' => 'foo'
) );
$this->assertSame( 'bar', a() );
}
public function setUp() : void
{
\WP_Mock::setUp();
}
public function tearDown() : void
{
\WP_Mock::tearDown();
}
}
答案 0 :(得分:2)
Wordpress很好地在他们的网站上对此进行了解释: https://make.wordpress.org/core/handbook/testing/automated-testing/writing-phpunit-tests