如何测试Wordpress插件功能

时间:2019-02-04 02:57:49

标签: wordpress phpunit mockery

如何使用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();
    }
}


1 个答案:

答案 0 :(得分:2)

Wordpress很好地在他们的网站上对此进行了解释: https://make.wordpress.org/core/handbook/testing/automated-testing/writing-phpunit-tests