PHPUnit 测试位于特征中的静态函数

PHPUnit test a static function located in a trait

在一段遗留代码中,我的任务是测试具有这样特征的静态函数:

namespace App\Model\SomeLogic;

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

并从documentation这一段使用getMockForTrait方法。但在我的例子中,制作一个虚拟对象以测试一个静态函数,其中对象瞬间无用开始没有价值。

在使用此特征的对象中测试该方法似乎非常耗时,而且进行更大规模的重构也很耗时。

那么我如何测试该特征以逐步重构任何使用它的 class?

只需使用此特征制作一个假人 class:

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
   }
}

因此您可以测试该方法,但在覆盖测试的情况下,我不知道何时显示或不显示。