如何使用PHPUnit的测试功能,在我的WordPress插件,不是类里面?这些功能作为模板标签。
编辑1 我使用从10up WP_Mock。
我的WordPress插件提供从单一文件中的一些模板标签,我试图对它们进行测试。在下面的例子中,我测试(),我想嘲笑B(),它是由()调用。
我得到一个错误信息Call to undefined function c()
所以看起来我试图嘲弄B()与WP_Mock :: userFunction失败。
这是预期的行为? 我怎样才能使对于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();
}
}
WordPress的做了很好的工作在这里解释在他们的网站吧:https://make.wordpress.org/core/handbook/testing/automated-testing/writing-phpunit-tests