Как проверить функции плагина Wordpress - PullRequest
0 голосов
/ 04 февраля 2019

Как я могу использовать 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();
    }
}


1 Ответ

0 голосов
/ 04 февраля 2019

Wordpress хорошо объясняет это на своем сайте здесь: https://make.wordpress.org/core/handbook/testing/automated-testing/writing-phpunit-tests

...