PHPUnit тестирует статическую функцию, расположенную в признаке - PullRequest
0 голосов
/ 28 июня 2019

В куске унаследованного кода мне было поручено протестировать статическую функцию с такой чертой:

namespace App\Model\SomeLogic;

trait WhyDecidedToUseTrait
{
   public static function aMethodThatDoesSomeFancyStuff()
   {
     //Method Logic
   }
}

И из этого куска документации с использованием метода getMockForTrait,Но в моем случае создание фиктивного объекта для тестирования статической функции, в которой экземпляры объекта для начала бесполезны, не имеет значения.

Кроме того, тестирование метода в объектах, использующих эту черту, кажется довольно длительным, а такжеВыполнение рефакторинга в более широком масштабе также отнимает много времени.

Итак, как я могу протестировать черту, чтобы постепенно провести рефакторинг любого класса, который ее использует?

1 Ответ

0 голосов
/ 28 июня 2019

Просто создайте класс Dummy, используя эту черту:

namespace Tests\YourTeasts;

use PHPUnit\Framework\TestCase;
use App\Model\SomeLogic\WhyDecidedToUseTrait;

class Dummy
{
  use WhyDecidedToUseTrait;
}

class StoreExtraAttributesTraitTest extends TestCase
{
   public function setTheStaticMethod()
   {
      Dummy::aMethodThatDoesSomeFancyStuff();

      //Assertions are done here
   }
}

Следовательно, вы можете протестировать метод, но в случае тестирования покрытия покрытия я понятия не имею, показывается ли это или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...