Как я могу использовать PHPUnit для тестирования функций в моем плагине Wordpress, которые не находятся внутри класса?Эти функции используются в качестве тегов шаблонов.
Редактировать 1
Я использую WP_Mock из 10up.
Мой плагин WordPress предоставляет некоторый шаблонтеги из одного файла, и я пытаюсь проверить их.В приведенном ниже примере я тестирую a () и хочу смоделировать b (), который вызывается функцией a ().
Я получаю сообщение об ошибке 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();
}
}